diff options
-rw-r--r-- | bpkg/pkg-build-collect.cxx | 377 | ||||
-rw-r--r-- | bpkg/pkg-build-collect.hxx | 74 | ||||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/bax-1.0.0.tar.gz | bin | 435 -> 494 bytes | |||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/bus-0.1.0.tar.gz | bin | 448 -> 478 bytes | |||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/foo-1.0.0.tar.gz | bin | 456 -> 485 bytes | |||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/fox-1.0.0.tar.gz | bin | 399 -> 461 bytes | |||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/tex-1.0.0.tar.gz | bin | 461 -> 492 bytes | |||
-rw-r--r-- | tests/common/dependency-alternatives/t11a/tiz-1.0.0.tar.gz | bin | 464 -> 496 bytes | |||
-rw-r--r-- | tests/pkg-build.testscript | 667 |
9 files changed, 546 insertions, 572 deletions
diff --git a/bpkg/pkg-build-collect.cxx b/bpkg/pkg-build-collect.cxx index 159871b..3581a6b 100644 --- a/bpkg/pkg-build-collect.cxx +++ b/bpkg/pkg-build-collect.cxx @@ -1503,7 +1503,7 @@ namespace bpkg return &p; } - optional<vector<postponed_configuration::dependency>> build_packages:: + optional<build_packages::pre_reevaluate_result> build_packages:: collect_build_prerequisites (const pkg_build_options& options, build_package& pkg, build_package_refs& dep_chain, @@ -1519,7 +1519,8 @@ namespace bpkg postponed_dependencies& postponed_deps, postponed_configurations& postponed_cfgs, unacceptable_alternatives& unacceptable_alts, - optional<pair<size_t, size_t>> reeval_pos) + optional<pair<size_t, size_t>> reeval_pos, + const optional<package_key>& orig_dep) { // NOTE: don't forget to update collect_build_postponed() if changing // anything in this function. Also enable and run the tests with the @@ -1536,7 +1537,11 @@ namespace bpkg bool pre_reeval (reeval_pos && reeval_pos->first == 0); assert (!pre_reeval || reeval_pos->second == 0); - bool reeval (reeval_pos && reeval_pos->first != 0); + // Must only be specified in the pre-reevaluation mode. + // + assert (orig_dep.has_value () == pre_reeval); + + bool reeval (reeval_pos && reeval_pos->first != 0); assert (!reeval || reeval_pos->second != 0); // The being (pre-)re-evaluated dependent cannot be recursively collected @@ -1569,12 +1574,16 @@ namespace bpkg postponed_edeps.find (pk) == postponed_edeps.end ()) { // Note that there can be multiple existing dependents for a dependency. + // Also note that we skip the existing dependents for which re- + // evaluation is optional not to initiate any negotiation in a simple + // case (see collect_build_prerequisites() description for details). // vector<existing_dependent> eds ( query_existing_dependents (trace, options, pk.db, pk.name, + true /* exclude_optional */, fdb, rpt_depts, replaced_vers)); @@ -1693,15 +1702,14 @@ namespace bpkg postponed_cfgs); } - // Postpone the original dependency recursive collection if the - // existing dependent has deviated or the dependency belongs to the - // earliest depends clause with configuration clause or to some - // later depends clause. It is supposed that it will be collected - // during its existing dependent re-collection. + // Postpone the recursive collection of a dependency if the existing + // dependent has deviated or the dependency belongs to the earliest + // depends clause with configuration clause or to some later depends + // clause. It is supposed that it will be collected during its + // existing dependent re-collection. // - if (!ed.dependency || // Dependent has deviated. - !ed.orig_dependency_position || // Later depends clause. - *ed.orig_dependency_position == ed.dependency_position) + if (!ed.dependency || // Dependent has deviated. + ed.originating_dependency_position >= ed.dependency_position) { postpone = true; postponed_edeps[pk].emplace_back (ed.db, ed.selected->name); @@ -1873,7 +1881,23 @@ namespace bpkg bool postponed (false); bool reevaluated (false); - vector<postponed_configuration::dependency> r; + // In the pre-reevaluation mode keep track of configuration variable + // prefixes similar to what we do in pkg_configure_prerequisites(). Stop + // tracking if we discovered that the dependent re-evaluation is not + // optional. + // + vector<string> banned_var_prefixes; + + auto references_banned_var = [&banned_var_prefixes] (const string& clause) + { + for (const string& p: banned_var_prefixes) + { + if (clause.find (p) != string::npos) + return true; + } + + return false; + }; if (pre_reeval) { @@ -1896,10 +1920,12 @@ namespace bpkg << " deviated: number of depends clauses changed to " << nn << " from " << on;}); - throw reeval_deviated (); + throw reevaluation_deviated (); } } + pre_reevaluate_result r; + for (size_t di (sdeps.size ()); di != deps.size (); ++di) { // Fail if we missed the re-evaluation target position for any reason. @@ -1932,7 +1958,7 @@ namespace bpkg << ": toolchain buildtime dependency replaced the " << " regular one with selected alternative " << oi;}); - throw reeval_deviated (); + throw reevaluation_deviated (); } } @@ -1958,8 +1984,23 @@ namespace bpkg { const dependency_alternative& da (das[i]); - if (!da.enable || - skel.evaluate_enable (*da.enable, make_pair (di, i))) + bool enabled; + + if (da.enable) + { + if (pre_reeval && + r.reevaluation_optional && + references_banned_var (*da.enable)) + { + r.reevaluation_optional = false; + } + + enabled = skel.evaluate_enable (*da.enable, make_pair (di, i)); + } + else + enabled = true; + + if (enabled) edas.push_back (make_pair (ref (da), i)); } } @@ -1978,7 +2019,7 @@ namespace bpkg << ": dependency with previously selected " << "alternative " << oi << " is now disabled";}); - throw reeval_deviated (); + throw reevaluation_deviated (); } } @@ -2106,7 +2147,7 @@ namespace bpkg << " is now in build system module " << "configuration";}); - throw reeval_deviated (); + throw reevaluation_deviated (); } assert (dr == nullptr); // Should fail on the "silent" run. @@ -2173,7 +2214,7 @@ namespace bpkg if (!wildcard (*dep_constr) && !satisfies (*dep_constr, dp.constraint)) { - // We should end up throwing reeval_deviated exception + // We should end up throwing reevaluation_deviated exception // before the diagnostics run in the pre-reevaluation mode. // assert (!pre_reeval || dr == nullptr); @@ -2279,7 +2320,7 @@ namespace bpkg << " deviated: package " << dn << *ddb << " is broken";}); - throw reeval_deviated (); + throw reevaluation_deviated (); } assert (dr == nullptr); // Should fail on the "silent" run. @@ -2414,7 +2455,7 @@ namespace bpkg << db->config_orig << ", " << ldb.config_orig;}); - throw reeval_deviated (); + throw reevaluation_deviated (); } assert (dr == nullptr); // Should fail on the "silent" run. @@ -2448,7 +2489,7 @@ namespace bpkg << "is found for build-time dependency (" << dp << ')';}); - throw reeval_deviated (); + throw reevaluation_deviated (); } // The private config should be created on the "silent" run @@ -2560,7 +2601,7 @@ namespace bpkg << "module " << dn << " in its dependent " << "package configuration " << pdb.config_orig;}); - throw reeval_deviated (); + throw reevaluation_deviated (); } assert (dr == nullptr); // Should fail on the "silent" run. @@ -2596,7 +2637,7 @@ namespace bpkg << pkg.available_name_version_db () << " deviated: is now orphaned";}); - throw reeval_deviated (); + throw reevaluation_deviated (); } assert (dr == nullptr); // Should fail on the "silent" run. @@ -2675,7 +2716,7 @@ namespace bpkg << (!dep_constr ? "" : "user-specified ") << "dependency constraint (" << d << ')';}); - throw reeval_deviated (); + throw reevaluation_deviated (); } if (dep_constr && !system && postponed_repo != nullptr) @@ -2774,7 +2815,7 @@ namespace bpkg // if (dap->system_version (*ddb) == nullptr) { - // We should end up throwing reeval_deviated exception + // We should end up throwing reevaluation_deviated exception // before the diagnostics run in the pre-reevaluation mode. // assert (!pre_reeval || dr == nullptr); @@ -2790,7 +2831,7 @@ namespace bpkg if (!satisfies (*dap->system_version (*ddb), d.constraint)) { - // We should end up throwing reeval_deviated exception + // We should end up throwing reevaluation_deviated exception // before the diagnostics run in the pre-reevaluation mode. // assert (!pre_reeval || dr == nullptr); @@ -2880,7 +2921,7 @@ namespace bpkg { if (!satisfies (v1, c2.value)) { - // We should end up throwing reeval_deviated exception + // We should end up throwing reevaluation_deviated exception // before the diagnostics run in the pre-reevaluation // mode. // @@ -3691,6 +3732,7 @@ namespace bpkg options, d.db, d.name, + false /* exclude_optional */, fdb, rpt_depts, replaced_vers)) @@ -3944,31 +3986,101 @@ namespace bpkg }; // Select a dependency alternative, copying it alone into the resulting - // dependencies list and evaluating its reflect clause, if present. + // dependencies list and evaluating its reflect clause, if present. In + // the pre-reevaluation mode update the variable prefixes list, if the + // selected alternative has config clause, and the pre-reevaluation + // resulting information (re-evaluation position, etc). + // + // Note that prebuilds are only used in the pre-reevaluation mode. // bool selected (false); - auto select = [&sdeps, &salts, &sdas, &skel, di, &selected] - (const dependency_alternative& da, size_t dai) + auto select = [&sdeps, &salts, &sdas, + &skel, + di, + &selected, + pre_reeval, &banned_var_prefixes, &references_banned_var, + &orig_dep, + &r] (const dependency_alternative& da, + size_t dai, + prebuilds&& pbs) + { + assert (sdas.empty ()); + + if (pre_reeval) { - assert (sdas.empty ()); + pair<size_t, size_t> pos (di + 1, dai + 1); - // Avoid copying enable/reflect not to evaluate them repeatedly. + bool contains_orig_dep ( + find_if (pbs.begin (), pbs.end (), + [&orig_dep] (const prebuild& pb) + { + return pb.dependency.name == orig_dep->name && + pb.db == orig_dep->db; + }) != pbs.end ()); + + // If the selected alternative contains the originating dependency, + // then set the originating dependency position, unless it is + // already set (note that the same dependency package may + // potentially be specified in multiple depends clauses). // - sdas.emplace_back (nullopt /* enable */, - nullopt /* reflect */, - da.prefer, - da.accept, - da.require, - da /* dependencies */); + if (contains_orig_dep && r.originating_dependency_position.first == 0) + r.originating_dependency_position = pos; - sdeps.push_back (move (sdas)); - salts.push_back (dai); + if (da.prefer || da.require) + { + if (contains_orig_dep) + r.reevaluation_optional = false; - if (da.reflect) - skel.evaluate_reflect (*da.reflect, make_pair (di, dai)); + // If this is the first selected alternative with the config + // clauses, then save its position and the dependency packages. + // + if (r.reevaluation_position.first == 0) + { + r.reevaluation_position = pos; - selected = true; - }; + for (prebuild& pb: pbs) + r.reevaluation_dependencies.emplace_back ( + pb.db, move (pb.dependency.name)); + } + + // Save the variable prefixes for the selected alternative + // dependencies, if we still track them. + // + if (r.reevaluation_optional) + { + for (const dependency& d: da) + banned_var_prefixes.push_back ( + "config." + d.name.variable () + '.'); + } + } + } + + // Avoid copying enable/reflect not to evaluate them repeatedly. + // + sdas.emplace_back (nullopt /* enable */, + nullopt /* reflect */, + da.prefer, + da.accept, + da.require, + da /* dependencies */); + + sdeps.push_back (move (sdas)); + salts.push_back (dai); + + if (da.reflect) + { + if (pre_reeval && + r.reevaluation_optional && + references_banned_var (*da.reflect)) + { + r.reevaluation_optional = false; + } + + skel.evaluate_reflect (*da.reflect, make_pair (di, dai)); + } + + selected = true; + }; // Postpone the prerequisite builds collection, optionally inserting the // package to the postponements set (can potentially already be there) @@ -4039,18 +4151,6 @@ namespace bpkg // bool reused_only (false); - auto pre_reeval_append_result = [&r] (pair<size_t, size_t> pos, - prebuilds&& builds) - { - postponed_configuration::packages deps; - deps.reserve (builds.size ()); - - for (prebuild& b: builds) - deps.emplace_back (b.db, move (b.dependency.name)); - - r.emplace_back (pos, move (deps), nullopt /* has_alternative */); - }; - for (size_t i (0); i != edas.size (); ++i) { // Skip the unacceptable alternatives. @@ -4142,9 +4242,7 @@ namespace bpkg &trace, &postpone, &collect, - &select, - &pre_reeval_append_result] - (size_t index, precollect_result&& pcr) + &select] (size_t index, precollect_result&& pcr) { const auto& eda (edas[index]); const dependency_alternative& da (eda.first); @@ -4192,16 +4290,7 @@ namespace bpkg << ": selected alternative changed to " << ni << " from " << oi;}); - throw reeval_deviated (); - } - - pre_reeval_append_result (make_pair (di + 1, ni), - move (*pcr.builds)); - - if (da.prefer || da.require) - { - postpone (nullptr); - return true; + throw reevaluation_deviated (); } } else if (!collect (da, dai, move (*pcr.builds), prereqs)) @@ -4210,7 +4299,7 @@ namespace bpkg return true; } - select (da, dai); + select (da, dai, move (*pcr.builds)); // Make sure no more true alternatives are selected during this // function call unless we are (pre-)reevaluating a dependent. @@ -4284,16 +4373,7 @@ namespace bpkg << ": selected alternative (single) changed to " << ni << " from " << oi;}); - throw reeval_deviated (); - } - - pre_reeval_append_result (make_pair (di + 1, ni), - move (*pcr.builds)); - - if (da.prefer || da.require) - { - postpone (nullptr); - break; + throw reevaluation_deviated (); } } else if (!collect (da, dai, move (*pcr.builds), prereqs)) @@ -4302,7 +4382,7 @@ namespace bpkg break; } - select (da, dai); + select (da, dai, move (*pcr.builds)); } } @@ -4329,7 +4409,7 @@ namespace bpkg << ": now can't select alternative, previously " << oi << " was selected";}); - throw reeval_deviated (); + throw reevaluation_deviated (); } if (reeval) @@ -4445,7 +4525,15 @@ namespace bpkg } } - if (postponed) + // Bail out if the collection is postponed or we are in the + // pre-reevaluation mode and have already collected all the required + // information. + // + if (postponed || + (pre_reeval && + r.reevaluation_position.first != 0 && + r.originating_dependency_position.first != 0 && + !r.reevaluation_optional)) break; } @@ -4459,18 +4547,34 @@ namespace bpkg if (pre_reeval) { + // It doesn't feel like it may happen in the pre-reevaluation mode. If + // it still happens, maybe due to some manual tampering, let's assume + // this as a deviation case. + // + if (r.originating_dependency_position.first == 0) + { + l5 ([&]{trace << "re-evaluation of dependent " + << pkg.available_name_version_db () + << " deviated: previously selected dependency " + << *orig_dep << " is not selected anymore";}); + + throw reevaluation_deviated (); + } + l5 ([&] { diag_record dr (trace); dr << "pre-reevaluated " << pkg.available_name_version_db () << ": "; - if (postponed) + pair<size_t, size_t> pos (r.reevaluation_position); + + if (pos.first != 0) { - assert (!r.empty ()); + dr << pos.first << ',' << pos.second; - dr << r.back ().position.first << ',' - << r.back ().position.second; + if (r.reevaluation_optional) + dr << " re-evaluation is optional"; } else dr << "end reached"; @@ -4486,9 +4590,9 @@ namespace bpkg << pkg.available_name_version_db ();}); } - return pre_reeval && postponed - ? optional<vector<postponed_configuration::dependency>> (move (r)) - : nullopt; + return pre_reeval && r.reevaluation_position.first != 0 + ? move (r) + : optional<pre_reevaluate_result> (); } void build_packages:: @@ -5002,6 +5106,7 @@ namespace bpkg o, p.db, p.name, + false /* exclude_optional */, fdb, rpt_depts, replaced_vers)) @@ -6104,6 +6209,7 @@ namespace bpkg o, pk.db, pk.name, + false /* exclude_optional */, fdb, rpt_depts, replaced_vers)) @@ -6712,6 +6818,7 @@ namespace bpkg const pkg_build_options& o, database& db, const package_name& name, + bool exclude_optional, const function<find_database_function>& fdb, const repointed_dependents& rpt_depts, const replaced_versions& replaced_vers) @@ -6828,6 +6935,8 @@ namespace bpkg lazy_shared_ptr<repository_fragment>> rp ( find_available_fragment (o, ddb, dsp)); + optional<package_key> orig_dep (package_key {db, name}); + try { build_package p { @@ -6865,7 +6974,7 @@ namespace bpkg unacceptable_alternatives unacceptable_alts; replaced_versions replaced_vers; - optional<vector<postponed_configuration::dependency>> deps ( + optional<pre_reevaluate_result> pr ( collect_build_prerequisites (o, p, dep_chain, @@ -6881,7 +6990,8 @@ namespace bpkg postponed_deps, postponed_cfgs, unacceptable_alts, - pair<size_t, size_t> (0, 0))); + pair<size_t, size_t> (0, 0), + orig_dep)); // Must be read-only. // @@ -6894,49 +7004,36 @@ namespace bpkg unacceptable_alts.empty () && replaced_vers.empty ()); - if (deps) + if (pr && (!pr->reevaluation_optional || !exclude_optional)) { - package_key pk {db, name}; - - assert (!deps->empty ()); - - // Try to retrieve the original dependency position. If we fail, - // then this dependency belongs to the depends clause which comes - // after the re-evaluation target position. - // - optional<pair<size_t, size_t>> odp; - - for (const postponed_configuration::dependency& d: *deps) - { - if (find (d.begin (), d.end (), pk) != d.end ()) - { - odp = d.position; - break; - } - } - - // Try to preserve the name of the original dependency as the one - // which brings the existing dependent to the config cluster. + // Try to preserve the name of the originating dependency as the + // one which brings the existing dependent to the config cluster. // Failed that, use the first dependency in the alternative which // we will be re-evaluating to. // - postponed_configuration::dependency& d (deps->back ()); + package_key dep (*orig_dep); + + pre_reevaluate_result::packages& deps ( + pr->reevaluation_dependencies); + + assert (!deps.empty ()); - if (find (d.begin (), d.end (), pk) == d.end ()) - pk = move (d.front ()); + if (find (deps.begin (), deps.end (), dep) == deps.end ()) + dep = move (deps.front ()); r.push_back ( - existing_dependent {ddb, move (dsp), - move (pk), d.position, - package_key {db, name}, odp}); + existing_dependent { + ddb, move (dsp), + move (dep), pr->reevaluation_position, + move (*orig_dep), pr->originating_dependency_position}); } } - catch (const reeval_deviated&) + catch (const reevaluation_deviated&) { r.push_back ( existing_dependent {ddb, move (dsp), nullopt, {}, - package_key {db, name}, nullopt}); + move (*orig_dep), {}}); } } } @@ -7080,23 +7177,23 @@ namespace bpkg ed.selected, move (rp.first), move (rp.second), - nullopt, // Dependencies. - nullopt, // Dependencies alternatives. - nullopt, // Package skeleton. - nullopt, // Postponed dependency alternatives. - false, // Recursive collection. - nullopt, // Hold package. - nullopt, // Hold version. - {}, // Constraints. - false, // System. - false, // Keep output directory. - false, // Disfigure (from-scratch reconf). - false, // Configure-only. - nullopt, // Checkout root. - false, // Checkout purge. - strings (), // Configuration variables. - {ed.orig_dependency}, // Required by (dependency). - false, // Required by dependents. + nullopt, // Dependencies. + nullopt, // Dependencies alternatives. + nullopt, // Package skeleton. + nullopt, // Postponed dependency alternatives. + false, // Recursive collection. + nullopt, // Hold package. + nullopt, // Hold version. + {}, // Constraints. + false, // System. + false, // Keep output directory. + false, // Disfigure (from-scratch reconf). + false, // Configure-only. + nullopt, // Checkout root. + false, // Checkout purge. + strings (), // Configuration variables. + {ed.originating_dependency}, // Required by (dependency). + false, // Required by dependents. flags}; // Note: not recursive. diff --git a/bpkg/pkg-build-collect.hxx b/bpkg/pkg-build-collect.hxx index 1c3bc09..d3bcb79 100644 --- a/bpkg/pkg-build-collect.hxx +++ b/bpkg/pkg-build-collect.hxx @@ -1248,15 +1248,31 @@ namespace bpkg // exception if such a cycle is detected. // // If {0,0} is specified as the reeval_pos argument, then perform the - // pre-reevaluation. In this read-only mode perform the regular dependency - // alternative selection but not the actual dependency collection and stop - // when all the depends clauses are processed or an alternative with the - // configuration clause is encountered. In the latter case return the list - // of the selected alternative dependencies/positions, where the last - // entry corresponds to the alternative with the encountered configuration - // clause. Return nullopt otherwise. Also look for any deviation in the - // dependency alternatives selection and throw reeval_deviated exception - // if such a deviation is detected. + // pre-reevaluation of an existing dependent, requested due to the + // specific dependency up/down-grade or reconfiguration (must be passed as + // the orig_dep; we call it originating dependency). The main purpose of + // this read-only mode is to obtain the position of the earliest selected + // dependency alternative with the config clause, if any, which the + // re-evaluation needs to be performed to and to determine if such a + // re-evaluation is optional (see pre_reevaluate_result for the full + // information being retrieved). The re-evaluation is considered to be + // optional if the existing dependent has no config clause for the + // originating dependency and the enable and reflect clauses do not refer + // to any of the dependency configuration variables (which can only be + // those which the dependent has the configuration clauses for; see the + // bpkg manual for details). The thinking here is that such an existing + // dependent may not change any configuration it applies to its + // dependencies and thus it doesn't call for any negotiations (note: if + // there are config clauses for the upgraded originating dependency, then + // the potentially different defaults for its config variables may affect + // the configuration this dependent applies to its dependencies). Such a + // dependent can also be reconfigured without pre-selection of its + // dependency alternatives since pkg-configure is capable of doing that on + // its own for such a simple case (see pkg_configure_prerequisites() for + // details). Also look for any deviation in the dependency alternatives + // selection and throw reevaluation_deviated exception if such a deviation + // is detected. Return nullopt if no dependency alternative with the + // config clause is selected. // // If the package is a dependency of configured dependents and needs to be // reconfigured (being upgraded, has configuration specified, etc), then @@ -1319,9 +1335,19 @@ namespace bpkg size_t depth; }; - struct reeval_deviated {}; + struct reevaluation_deviated {}; - optional<vector<postponed_configuration::dependency>> + struct pre_reevaluate_result + { + using packages = postponed_configuration::packages; + + pair<size_t, size_t> reevaluation_position; + packages reevaluation_dependencies; + bool reevaluation_optional = true; + pair<size_t, size_t> originating_dependency_position; + }; + + optional<pre_reevaluate_result> collect_build_prerequisites (const pkg_build_options&, build_package&, build_package_refs& dep_chain, @@ -1337,7 +1363,8 @@ namespace bpkg postponed_dependencies&, postponed_configurations&, unacceptable_alternatives&, - optional<pair<size_t, size_t>> reeval_pos = nullopt); + optional<pair<size_t, size_t>> reeval_pos = nullopt, + const optional<package_key>& orig_dep = nullopt); void collect_build_prerequisites (const pkg_build_options&, @@ -1476,28 +1503,26 @@ namespace bpkg // in the map) or expected to be built or dropped (present in rpt_depts or // replaced_vers). Also skip dependents which impose the version // constraint on this dependency and the dependency doesn't satisfy this - // constraint. + // constraint. Optionally, skip the existing dependents for which + // re-evaluation is considered optional (exclude_optional argument; see + // pre-reevaluation mode of collect_build_prerequisites() for details). // struct existing_dependent { // Dependent. // - reference_wrapper<database> db; - shared_ptr<selected_package> selected; + reference_wrapper<database> db; + shared_ptr<selected_package> selected; // Earliest dependency with config clause. // - optional<package_key> dependency; - pair<size_t, size_t> dependency_position; + optional<package_key> dependency; + pair<size_t, size_t> dependency_position; - // Original dependency. - // - // Note that we always know the original dependency but may not be able - // to obtain its position if it comes after the earliest dependency with - // config clause or the dependent deviates. + // Originating dependency passed to the function call. // - package_key orig_dependency; - optional<pair<size_t, size_t>> orig_dependency_position; + package_key originating_dependency; + pair<size_t, size_t> originating_dependency_position; }; // This exception is thrown by collect_build_prerequisites() and @@ -1517,6 +1542,7 @@ namespace bpkg const pkg_build_options&, database&, const package_name&, + bool exclude_optional, const function<find_database_function>&, const repointed_dependents&, const replaced_versions&); diff --git a/tests/common/dependency-alternatives/t11a/bax-1.0.0.tar.gz b/tests/common/dependency-alternatives/t11a/bax-1.0.0.tar.gz Binary files differindex d488f1a..6c00903 100644 --- a/tests/common/dependency-alternatives/t11a/bax-1.0.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/bax-1.0.0.tar.gz diff --git a/tests/common/dependency-alternatives/t11a/bus-0.1.0.tar.gz b/tests/common/dependency-alternatives/t11a/bus-0.1.0.tar.gz Binary files differindex e486d37..e3672b2 100644 --- a/tests/common/dependency-alternatives/t11a/bus-0.1.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/bus-0.1.0.tar.gz diff --git a/tests/common/dependency-alternatives/t11a/foo-1.0.0.tar.gz b/tests/common/dependency-alternatives/t11a/foo-1.0.0.tar.gz Binary files differindex c9a4d6d..42d9cc5 100644 --- a/tests/common/dependency-alternatives/t11a/foo-1.0.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/foo-1.0.0.tar.gz diff --git a/tests/common/dependency-alternatives/t11a/fox-1.0.0.tar.gz b/tests/common/dependency-alternatives/t11a/fox-1.0.0.tar.gz Binary files differindex 17b7278..159cfbd 100644 --- a/tests/common/dependency-alternatives/t11a/fox-1.0.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/fox-1.0.0.tar.gz diff --git a/tests/common/dependency-alternatives/t11a/tex-1.0.0.tar.gz b/tests/common/dependency-alternatives/t11a/tex-1.0.0.tar.gz Binary files differindex 3c9093d..0c9e29d 100644 --- a/tests/common/dependency-alternatives/t11a/tex-1.0.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/tex-1.0.0.tar.gz diff --git a/tests/common/dependency-alternatives/t11a/tiz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t11a/tiz-1.0.0.tar.gz Binary files differindex 63c5876..8bfadcd 100644 --- a/tests/common/dependency-alternatives/t11a/tiz-1.0.0.tar.gz +++ b/tests/common/dependency-alternatives/t11a/tiz-1.0.0.tar.gz diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript index 99636ad..b6aadba 100644 --- a/tests/pkg-build.testscript +++ b/tests/pkg-build.testscript @@ -205,7 +205,7 @@ # | |-- libbiz-1.0.0.tar.gz -> libbar # | |-- foo-0.1.0.tar.gz -> libfoo {require {config.libfoo.extras=true}} # | |-- foo-0.2.0.tar.gz -> libfoo {require {config.libfoo.extras=true}} | libbar -# | |-- foo-1.0.0.tar.gz -> libfoo {require {config.libfoo.extras=true}} +# | |-- foo-1.0.0.tar.gz -> libfoo {require {config.libfoo.extras=true} reflect {...}} # | |-- fox-0.1.0.tar.gz -> libfoo {prefer {config.libfoo.extras=true} accept (false)} | # | | libbar # | |-- fox-0.2.0.tar.gz -> libfoo {prefer {config.libfoo.extras=false} accept (!$config.libfoo.extras)} | @@ -226,7 +226,7 @@ # | |-- bat-1.0.0.tar.gz -> libbaz {require {config.libbaz.extras=true}} # | |-- bas-1.0.0.tar.gz -> libbar {require {config.libbar.extras=true}}, # | | bus {require {config.bus.extras=true}} -# | |-- bus-0.1.0.tar.gz -> foo {require {config.foo.extras=true}} +# | |-- bus-0.1.0.tar.gz -> foo {require {config.foo.extras=true} reflect {...}} # | |-- bus-1.0.0.tar.gz -> libaz {require {config.libbaz.extras=true}}, # | | foo {require {config.foo.extras=true}} # | |-- box-0.1.0.tar.gz -> libbox == 0.1.0 {require {config.libbox.extras=true}} @@ -234,7 +234,7 @@ # | |-- box-1.0.0.tar.gz -> {libbar libfoo} {require {config.libbar.extras=true config.libfoo.extras=true}} | # | | libbox # | |-- bax-0.1.0.tar.gz -> {libbox libbar} {require {config.libbox.extras=true}} -# | |-- bax-1.0.0.tar.gz -> libfoo {require {config.libfoo.extras=true}}, +# | |-- bax-1.0.0.tar.gz -> libfoo {require {config.libfoo.extras=true} reflect {...}}, # | | {libbox libbar} {require {config.libbox.extras=true config.libbar.extras=true}} # | |-- bux-1.0.0.tar.gz -> libbar {require {config.libbar.extras=true}} # | |-- bix-1.0.0.tar.gz -> {libbar bar} {require {config.libbar.extras=true config.bar.extras=true}}, @@ -254,11 +254,11 @@ # | |-- tex-0.3.0.tar.gz -> libbar {require {config.libbar.extras=true}}, # | | libfoo {require {config.libfoo.extras=true}} # | |-- tex-1.0.0.tar.gz -> libbar {require {config.libbar.extras=true}}, -# | | libfoo {require {config.libfoo.extras=true}} +# | | libfoo {require {config.libfoo.extras=true} reflect {...}} # | |-- tix-0.1.0.tar.gz # | |-- tix-1.0.0.tar.gz -> libbar {require {config.libbar.extras=true}}, # | | tex {require {config.tex.extras=true}} -# | |-- tiz-1.0.0.tar.gz -> tex {require {config.tex.extras=true}}, +# | |-- tiz-1.0.0.tar.gz -> tex {require {config.tex.extras=true}, reflect {...}}, # | | libbar {require {config.libbar.extras=true}} # | |-- toz-0.1.0.tar.gz # | |-- toz-0.2.0.tar.gz -> libfoo {require {config.libfoo.extras=true}}, @@ -5755,33 +5755,27 @@ test.arguments += --sys-no-query # # fux: depends: libfoo # - $* foo fox fux 2>>~%EOE%; + $* foo fox fux 2>&1 | $filter 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 1,1: libfoo} 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 since already in cluster {foo fox | libfoo->{foo/1,1 fox/1,1}} trace: collect_build_prerequisites: end fux/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo fox | libfoo->{foo/1,1 fox/1,1}} - %.* 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 @@ -5801,7 +5795,9 @@ test.arguments += --sys-no-query new libfoo/1.0.0 (required by foo, fox, fux) config.libfoo.extras=true (set by foo) new foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) new fox/1.0.0 + config.fox.libfoo_extras=true (set by fox) new fux/1.0.0 %.* EOE @@ -5823,28 +5819,22 @@ test.arguments += --sys-no-query { $clone_cfg; - $* foo fox '?sys:libfoo/*' 2>>~%EOE%; + $* foo fox '?sys:libfoo/*' 2>&1 | $filter 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_prerequisites: begin foo/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency sys:libfoo/* 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 sys:libfoo/* of dependent fox/1.0.0 trace: postponed_configurations::add: add {fox 1,1: libfoo} to {foo | libfoo->{foo/1,1}} trace: collect_build_prerequisites: postpone fox/1.0.0 - %.* trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo fox | libfoo->{foo/1,1 fox/1,1}} - %.* 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: skip system sys:libfoo/* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents @@ -5857,14 +5847,15 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo fox | libfoo->{foo/1,1 fox/1,1}}! trace: collect_build_postponed (1): end {foo fox | libfoo->{foo/1,1 fox/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: configure sys:libfoo/* (required by foo, fox) config.libfoo.extras=true (expected by foo) new foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) new fox/1.0.0 + config.fox.libfoo_extras=true (set by fox) %.* EOE @@ -5883,27 +5874,23 @@ test.arguments += --sys-no-query { $clone_cfg; - $* foo bar baz 2>>~%EOE%; + $* foo bar baz 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add foo/1.0.0 trace: collect_build: add bar/1.0.0 trace: collect_build: add baz/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 bar/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: create {bar | libbar->{bar/1,1}} trace: collect_build_prerequisites: postpone bar/1.0.0 trace: collect_build_prerequisites: begin baz/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent baz/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent baz/1.0.0 trace: postponed_configurations::add: add {baz 1,1: libbar libfoo} to {foo | libfoo->{foo/1,1}} @@ -5911,9 +5898,7 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: postpone baz/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bar baz foo | libfoo->{baz/1,1 foo/1,1} libbar->{bar/1,1 baz/1,1}} - %.* trace: collect_build_postponed (1): cfg-negotiate begin {bar baz foo | libfoo->{baz/1,1 foo/1,1} libbar->{bar/1,1 baz/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 @@ -5938,6 +5923,7 @@ test.arguments += --sys-no-query new libfoo/1.0.0 (required by baz, foo) config.libfoo.extras=true (set by baz) new foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) new libbar/1.0.0 (required by bar, baz) config.libbar.extras=true (set by bar) new bar/1.0.0 @@ -6105,69 +6091,54 @@ test.arguments += --sys-no-query # # fix: depends: foo(c) # - $* fux foo fix 2>>~%EOE%; + $* fux foo fix 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add fux/1.0.0 trace: collect_build: add foo/1.0.0 trace: collect_build: add fix/1.0.0 trace: collect_build_prerequisites: begin fux/1.0.0 - %.* trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/1.0.0 of dependent fux/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 fux/1.0.0 trace: collect_build_prerequisites: begin foo/1.0.0 - %.* trace: collect_build_prerequisites: cannot cfg-postpone dependency libfoo/1.0.0 of dependent foo/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 - %.* trace: collect_build: add fux/1.0.0 trace: collect_build: add foo/1.0.0 trace: collect_build: add fix/1.0.0 trace: collect_build_prerequisites: begin fux/1.0.0 - %.* trace: collect_build: add libfoo/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_prerequisites: begin 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: create {foo | libfoo->{foo/1,1}} trace: collect_build_prerequisites: postpone foo/1.0.0 trace: collect_build_prerequisites: begin fix/1.0.0 - %.* trace: collect_build_prerequisites: cannot cfg-postpone dependency foo/1.0.0 of dependent fix/1.0.0 (collected prematurely), throwing postpone_dependency trace: pkg_build: collection failed due to prematurely collected dependency (foo), retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add fux/1.0.0 trace: collect_build: add foo/1.0.0 trace: collect_build: add fix/1.0.0 trace: collect_build_prerequisites: begin fux/1.0.0 - %.* trace: collect_build: add libfoo/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: pkg_build: dep-postpone user-specified foo trace: collect_build_prerequisites: begin fix/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency foo/1.0.0 of dependent fix/1.0.0 trace: postponed_configurations::add: create {fix | foo->{fix/1,1}} trace: collect_build_prerequisites: postpone fix/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {fix | foo->{fix/1,1}} - %.* trace: collect_build_postponed (1): cfg-negotiate begin {fix | foo->{fix/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin 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: create {foo | libfoo->{foo/1,1}} trace: collect_build_prerequisites: postpone foo/1.0.0 @@ -6177,9 +6148,7 @@ test.arguments += --sys-no-query 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 {foo | libfoo->{foo/1,1}} - %.* trace: collect_build_postponed (2): cfg-negotiate begin {foo | libfoo->{foo/1,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/1.0.0 trace: collect_build_prerequisites: end libfoo/1.0.0 @@ -6199,6 +6168,7 @@ test.arguments += --sys-no-query new fux/1.0.0 new foo/1.0.0 config.foo.extras=true (set by fix) + config.foo.libfoo_extras=true (set by foo) new fix/1.0.0 trace: execute_plan: simulate: no %.* @@ -6568,18 +6538,13 @@ test.arguments += --sys-no-query !libfoo configured !0.1.0 available 1.0.0 EOO - $* libfoo 2>>~%EOE%; + $* libfoo 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval foo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: 1,1 - %.* trace: collect_build_prerequisites: pre-reeval fox/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated fox/1.0.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of existing dependent foo/1.0.0 due to dependency libfoo/1.0.0 trace: collect_build: add foo/1.0.0 @@ -6588,28 +6553,22 @@ test.arguments += --sys-no-query trace: collect_build: add fox/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo^ | libfoo->{foo/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval foo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval fox/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated fox/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {foo^ | libfoo->{foo/1,1}} trace: collect_build_prerequisites: reeval foo/1.0.0 - %.* trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 trace: postponed_configurations::add: add {foo^ 1,1: libfoo} to {foo^ | libfoo->{foo/1,1}} trace: collect_build_prerequisites: re-evaluating dependent foo/1.0.0 results in {foo^ | libfoo->{foo/1,1}} trace: collect_build_prerequisites: re-evaluated foo/1.0.0 trace: collect_build_prerequisites: reeval fox/1.0.0 - %.* trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 trace: postponed_configurations::add: add {fox^ 1,1: libfoo} to {foo^ | libfoo->{foo/1,1}} trace: collect_build_prerequisites: re-evaluating dependent fox/1.0.0 results in {foo^ fox^ | libfoo->{foo/1,1 fox/1,1}} trace: collect_build_prerequisites: re-evaluated fox/1.0.0 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 @@ -6623,34 +6582,16 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo^ fox^ | libfoo->{foo/1,1 fox/1,1}}! trace: collect_build_postponed (1): end {foo^ | libfoo->{foo/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: upgrade libfoo/1.0.0 config.libfoo.extras=true (set by foo) reconfigure fox/1.0.0 (dependent of libfoo) + config.fox.libfoo_extras=true (set by fox) reconfigure foo/1.0.0 (dependent of libfoo) - %.* - disfigured foo/1.0.0 - %.* - disfigured fox/1.0.0 - %.* - disfigured libfoo/0.1.0 - %.* - fetched libfoo/1.0.0 - %.* - unpacked libfoo/1.0.0 - %.* - configured libfoo/1.0.0 - %.* - configured foo/1.0.0 - %.* - updated libfoo/1.0.0 - %.* - updated fox/1.0.0 - %.* - updated foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) + trace: execute_plan: simulate: no %.* EOE @@ -6691,54 +6632,43 @@ test.arguments += --sys-no-query libfoo configured 1.0.0 EOO - $* fix/0.1.0 libbiz biz/0.1.0 2>>~%EOE%; + $* fix/0.1.0 libbiz biz/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add fix/0.1.0 trace: collect_build: add libbiz/1.0.0 trace: collect_build: add biz/0.1.0 trace: collect_build_prerequisites: begin fix/0.1.0 - %.* trace: collect_build: add foo/0.1.0 info: package fix dependency on (foo == 0.1.0) is forcing downgrade of foo/1.0.0 to 0.1.0 trace: collect_build_prerequisites: no cfg-clause for dependency foo/0.1.0 of dependent fix/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval bus/0.1.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bus/0.1.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency foo/0.1.0 of existing dependent bus/0.1.0 due to dependency foo/0.1.0 trace: collect_build: add bus/0.1.0 trace: postponed_configurations::add: create {bus^ | foo->{bus/1,1}} trace: collect_build_prerequisites: end fix/0.1.0 trace: collect_build_prerequisites: begin libbiz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent libbiz/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 libbiz/1.0.0 trace: collect_build_prerequisites: begin biz/0.1.0 - %.* trace: collect_build: pick libbiz/0.1.0 over libbiz/1.0.0 trace: collect_build: libbiz/1.0.0 package version needs to be replaced with libbiz/0.1.0 trace: pkg_build: collection failed due to package version replacement, retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add fix/0.1.0 trace: collect_build: apply version replacement for libbiz/1.0.0 trace: collect_build: replacement: libbiz/0.1.0 trace: collect_build: add libbiz/0.1.0 trace: collect_build: add biz/0.1.0 trace: collect_build_prerequisites: begin fix/0.1.0 - %.* trace: collect_build: add foo/0.1.0 info: package fix dependency on (foo == 0.1.0) is forcing downgrade of foo/1.0.0 to 0.1.0 trace: collect_build_prerequisites: no cfg-clause for dependency foo/0.1.0 of dependent fix/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval bus/0.1.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bus/0.1.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency foo/0.1.0 of existing dependent bus/0.1.0 due to dependency foo/0.1.0 trace: collect_build: add bus/0.1.0 @@ -6747,27 +6677,21 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: begin libbiz/0.1.0 trace: collect_build_prerequisites: end libbiz/0.1.0 trace: collect_build_prerequisites: begin biz/0.1.0 - %.* trace: collect_build_prerequisites: no cfg-clause for dependency libbiz/0.1.0 of dependent biz/0.1.0 trace: collect_build_prerequisites: end biz/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bus^ | foo->{bus/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bus/0.1.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bus/0.1.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bus^ | foo->{bus/1,1}} trace: collect_build_prerequisites: reeval bus/0.1.0 - %.* trace: collect_build: pick foo/0.1.0 over foo/1.0.0 trace: postponed_configurations::add: add {bus^ 1,1: foo} to {bus^ | foo->{bus/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bus/0.1.0 results in {bus^ | foo->{bus/1,1}} trace: collect_build_prerequisites: re-evaluated bus/0.1.0 trace: collect_build_postponed (1): cfg-negotiate begin {bus^ | foo->{bus/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin foo/0.1.0 - %.* trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/0.1.0 trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}} @@ -6778,10 +6702,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end bus/0.1.0 trace: collect_build_postponed (1): cfg-negotiate end {bus^ | foo->{bus/1,1}}! trace: collect_build_postponed (2): begin {foo | libfoo->{foo/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent foo of dependency libfoo trace: collect_build_postponed (2): cfg-negotiate begin {foo | libfoo->{foo/1,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: skip configured libfoo/1.0.0 trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents @@ -6792,13 +6714,13 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {foo | libfoo->{foo/1,1}} trace: collect_build_postponed (1): end {bus^ | foo->{bus/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: downgrade foo/0.1.0 (required by bus, fix) config.foo.extras=true (set by bus) reconfigure bus/0.1.0 (dependent of foo) + config.bus.foo_extras=true (set by bus) new fix/0.1.0 new libbiz/0.1.0 new biz/0.1.0 @@ -6836,67 +6758,55 @@ test.arguments += --sys-no-query # $* fix --verbose 1 2>!; - $* libfoo/0.1.0 fix/0.1.0 2>>~%EOE%; + $pkg_status -r >>EOO; + !fix configured 1.0.0 + foo configured 1.0.0 + libfoo configured 1.0.0 + EOO + + $* libfoo/0.1.0 fix/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add fix/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval foo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of existing dependent foo/1.0.0 due to dependency libfoo/0.1.0 trace: collect_build: add foo/1.0.0 trace: postponed_configurations::add: create {foo^ | libfoo->{foo/1,1}} - %.* trace: collect_build_prerequisites: begin fix/0.1.0 - %.* trace: collect_build: pick foo/0.1.0 over foo/1.0.0 trace: collect_build: foo/1.0.0 package version needs to be replaced with foo/0.1.0 trace: pkg_build: collection failed due to package version replacement, retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add fix/0.1.0 - %.* trace: collect_build_prerequisites: skip expected to be built existing dependent foo of dependency libfoo trace: collect_build_prerequisites: begin libfoo/0.1.0 trace: collect_build_prerequisites: end libfoo/0.1.0 - %.* trace: collect_build_prerequisites: begin fix/0.1.0 - %.* trace: collect_build: apply version replacement for foo/0.1.0 trace: collect_build: replacement: foo/0.1.0 trace: collect_build: add foo/0.1.0 info: package fix dependency on (foo == 0.1.0) is forcing downgrade of foo/1.0.0 to 0.1.0 trace: collect_build_prerequisites: no cfg-clause for dependency foo/0.1.0 of dependent fix/0.1.0 - %.* trace: collect_build_prerequisites: skip being built existing dependent fix of dependency foo trace: collect_build_prerequisites: begin foo/0.1.0 - %.* trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cannot cfg-postpone dependency libfoo/0.1.0 of dependent foo/0.1.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 - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add fix/0.1.0 trace: pkg_build: dep-postpone user-specified libfoo - %.* trace: collect_build_prerequisites: begin fix/0.1.0 - %.* trace: collect_build: apply version replacement for foo/0.1.0 trace: collect_build: replacement: foo/0.1.0 trace: collect_build: add foo/0.1.0 info: package fix dependency on (foo == 0.1.0) is forcing downgrade of foo/1.0.0 to 0.1.0 trace: collect_build_prerequisites: no cfg-clause for dependency foo/0.1.0 of dependent fix/0.1.0 - %.* trace: collect_build_prerequisites: skip being built existing dependent fix of dependency foo trace: collect_build_prerequisites: begin foo/0.1.0 - %.* trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent foo/0.1.0 trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}} @@ -6904,10 +6814,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end fix/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,1}} - %.* trace: collect_build_postponed (1): skip being built existing dependent foo of dependency 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 @@ -6918,7 +6826,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! trace: collect_build_postponed (1): end {foo | libfoo->{foo/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -6958,15 +6865,18 @@ test.arguments += --sys-no-query # $* tex --verbose 1 2>!; - $* libfoo/0.1.0 libbar/0.1.0 2>>~%EOE%; + $pkg_status -r >>EOO; + !tex configured 1.0.0 + libbar configured 1.0.0 + libfoo configured 1.0.0 + EOO + + $* libfoo/0.1.0 libbar/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add libbar/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: pick libbar/0.1.0 over libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/0.1.0 of existing dependent tex/1.0.0 due to dependency libfoo/0.1.0 @@ -6975,36 +6885,29 @@ test.arguments += --sys-no-query trace: pkg_build: dep-postpone user-specified libbar since already in cluster {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* trace: collect_build: pick libbar/0.1.0 over libbar/1.0.0 trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluated tex/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libbar/0.1.0 trace: collect_build_prerequisites: end libbar/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 tex/1.0.0 trace: collect_build_prerequisites: resume tex/1.0.0 - %.* trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} trace: collect_build_prerequisites: postpone tex/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {tex^ | libbar->{tex/1,1}}! trace: collect_build_postponed (2): begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tex of dependency libfoo trace: collect_build_postponed (2): cfg-negotiate begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/0.1.0 trace: collect_build_prerequisites: end libfoo/0.1.0 @@ -7016,7 +6919,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tex | libfoo->{tex/2,1}} trace: collect_build_postponed (1): end {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -7025,6 +6927,7 @@ test.arguments += --sys-no-query downgrade libbar/0.1.0 config.libbar.extras=true (set by tex) reconfigure tex/1.0.0 (dependent of libbar, libfoo) + config.tex.libfoo_extras=true (set by tex) trace: execute_plan: simulate: no %.* EOE @@ -7054,33 +6957,31 @@ test.arguments += --sys-no-query # $* tex --verbose 1 2>!; - $* libfoo/0.1.0 bar/0.1.0 2>>~%EOE%; + $pkg_status -r >>EOO; + !tex configured 1.0.0 + libbar configured 1.0.0 + libfoo configured 1.0.0 + EOO + + $* libfoo/0.1.0 bar/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add bar/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libfoo/0.1.0 trace: collect_build: add tex/1.0.0 trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: begin bar/0.1.0 - %.* trace: collect_build: pick libbar/0.1.0 over libbar/1.0.0 trace: collect_build: libbar/1.0.0 package version needs to be replaced with libbar/0.1.0 trace: pkg_build: collection failed due to package version replacement, retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libfoo/0.1.0 trace: collect_build: add bar/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: apply version replacement for libbar/1.0.0 trace: collect_build: replacement: libbar/0.1.0 @@ -7089,25 +6990,20 @@ test.arguments += --sys-no-query trace: collect_build: add tex/1.0.0 trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: begin bar/0.1.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/0.1.0 of dependent bar/0.1.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: postpone bar/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bar tex^ | libbar->{bar/1,1 tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bar tex^ | libbar->{bar/1,1 tex/1,1}} trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* trace: collect_build: pick libbar/0.1.0 over libbar/1.0.0 trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {bar tex^ | libbar->{bar/1,1 tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {bar tex^ | libbar->{bar/1,1 tex/1,1}} trace: collect_build_prerequisites: re-evaluated tex/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {bar tex^ | libbar->{bar/1,1 tex/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libbar/0.1.0 trace: collect_build_prerequisites: end libbar/0.1.0 @@ -7117,17 +7013,14 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end bar/0.1.0 trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tex/1.0.0 trace: collect_build_prerequisites: resume tex/1.0.0 - %.* trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} trace: collect_build_prerequisites: postpone tex/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {bar tex^ | libbar->{bar/1,1 tex/1,1}}! trace: collect_build_postponed (2): begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tex of dependency libfoo trace: collect_build_postponed (2): cfg-negotiate begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/0.1.0 trace: collect_build_prerequisites: end libfoo/0.1.0 @@ -7139,7 +7032,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tex | libfoo->{tex/2,1}} trace: collect_build_postponed (1): end {bar tex^ | libbar->{bar/1,1 tex/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -7148,6 +7040,7 @@ test.arguments += --sys-no-query downgrade libbar/0.1.0 (required by bar, tex) config.libbar.extras=true (set by bar) reconfigure tex/1.0.0 (dependent of libbar, libfoo) + config.tex.libfoo_extras=true (set by tex) new bar/0.1.0 trace: execute_plan: simulate: no %.* @@ -7265,14 +7158,11 @@ test.arguments += --sys-no-query # $* bax baz --verbose 1 2>!; - $* libbox/0.1.0 2>>~%EOE%; + $* libbox/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libbox/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of existing dependent bax/1.0.0 due to dependency libbox/0.1.0 @@ -7280,70 +7170,53 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {bax^ | libfoo->{bax/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 - %.* trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 trace: collect_build: add baz/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/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_prerequisites: skip configured 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 bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - %.* trace: collect_build_prerequisites: skip being built existing dependent bax of dependency libbox - %.* trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bax^ | libfoo->{bax/1,1}} failed due to dependent bax, refining configuration trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 trace: collect_build: add baz/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} @@ -7353,12 +7226,10 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - %.* trace: collect_build_prerequisites: skip being built existing dependent bax of dependency libbox trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated trace: collect_build_prerequisites: collecting cfg-postponed dependency libbox/0.1.0 of dependent bax/1.0.0 @@ -7372,13 +7243,13 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}! trace: collect_build_postponed (1): end {bax^ | libfoo->{bax/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: downgrade libbox/0.1.0 config.libbox.extras=true (set by bax) reconfigure bax/1.0.0 (dependent of libbox, libfoo) + config.bax.libfoo_extras=true (set by bax) trace: execute_plan: simulate: no %.* EOE @@ -7413,13 +7284,11 @@ test.arguments += --sys-no-query # $* bax baz --verbose 1 2>!; - $* box/0.1.0 2>>~%EOE%; + $* box/0.1.0 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add box/0.1.0 trace: collect_build_prerequisites: begin box/0.1.0 - %.* trace: collect_build: add libbox/0.1.0 info: package box dependency on (libbox == 0.1.0) is forcing downgrade of libbox/1.0.0 to 0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent box/0.1.0 @@ -7427,20 +7296,16 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: postpone box/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {box | libbox->{box/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build: add libfoo/1.0.0 trace: collect_build_postponed (1): re-evaluate existing dependents for {box | libbox->{box/1,1}} trace: collect_build: add bax/1.0.0 trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: create {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {box | libbox->{box/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libbox/0.1.0 trace: collect_build_prerequisites: end libbox/0.1.0 @@ -7450,32 +7315,25 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end box/0.1.0 trace: collect_build_postponed (1): cfg-negotiate end {box | libbox->{box/1,1}}! trace: collect_build_postponed (2): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent bax of dependency libfoo - %.* trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (2): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build: add baz/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (2): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (2): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (2): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: skip configured libfoo/1.0.0 trace: collect_build_prerequisites: skip configured 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 bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 @@ -7484,32 +7342,25 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 merges non-negotiated and/or being negotiated configurations in and results in {bax baz^ box | libbox->{bax/2,1 box/1,1} libbar->{bax/2,1 baz/1,1} libfoo->{bax/1,1 baz/1,1}}!, throwing merge_configuration trace: collect_build_postponed (0): cfg-negotiation of {box | libbox->{box/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bax baz^ box | libbox->{bax/2,1 box/1,1} libbar->{bax/2,1 baz/1,1} libfoo->{bax/1,1 baz/1,1}}! trace: collect_build_postponed (1): begin {box | libbox->{box/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build: add libfoo/1.0.0 trace: collect_build_postponed (1): re-evaluate existing dependents for {box | libbox->{box/1,1}} trace: collect_build: add bax/1.0.0 trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {box | libbox->{box/1,1}} (shadow cluster-based) trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ box | libbox->{box/1,1} libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libfoo trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ box | libbox->{box/1,1} libfoo->{bax/1,1}} trace: collect_build: add baz/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ box | libbox->{box/1,1} libfoo->{bax/1,1}} (shadow cluster-based) trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ box | libbox->{box/1,1} libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ box | libbox->{box/1,1} libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} @@ -7521,7 +7372,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 @@ -7539,13 +7389,13 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {bax^ baz^ box | libbox->{bax/2,1 box/1,1} libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1}}! trace: collect_build_postponed (1): end {box | libbox->{box/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: downgrade libbox/0.1.0 (required by bax, box) config.libbox.extras=true (set by box) reconfigure bax/1.0.0 (dependent of libbox) + config.bax.libfoo_extras=true (set by bax) new box/0.1.0 trace: execute_plan: simulate: no %.* @@ -7590,14 +7440,11 @@ test.arguments += --sys-no-query libfoo configured 1.0.0 EOO - $* libbox/0.1.0 ?baz 2>>~%EOE%; + $* libbox/0.1.0 ?baz 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libbox/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of existing dependent bax/1.0.0 due to dependency libbox/0.1.0 @@ -7605,67 +7452,51 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {bax^ | libfoo->{bax/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/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_prerequisites: skip configured 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 bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - %.* trace: collect_build_prerequisites: skip being built existing dependent bax of dependency libbox - %.* trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bax^ | libfoo->{bax/1,1}} failed due to dependent bax, refining configuration trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval baz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated baz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} @@ -7675,12 +7506,10 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - %.* trace: collect_build_prerequisites: skip being built existing dependent bax of dependency libbox trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated trace: collect_build_prerequisites: collecting cfg-postponed dependency libbox/0.1.0 of dependent bax/1.0.0 @@ -7694,17 +7523,12 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}! trace: collect_build_postponed (1): end {bax^ | libfoo->{bax/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* trace: evaluate_dependency: baz/1.0.0: unused - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libbox/0.1.0 - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of existing dependent bax/1.0.0 due to dependency libbox/0.1.0 @@ -7713,14 +7537,11 @@ test.arguments += --sys-no-query trace: collect_drop: overwrite baz trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval bax/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 trace: collect_build_postponed (1): skip being dropped existing dependent baz of dependency libfoo trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} trace: collect_build_prerequisites: re-evaluated bax/1.0.0 @@ -7730,7 +7551,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build: add libbar/1.0.0 @@ -7739,9 +7559,7 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: postpone bax/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {bax^ | libfoo->{bax/1,1}}! trace: collect_build_postponed (2): begin {bax | libbox->{bax/2,1} libbar->{bax/2,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent bax of dependency libbox - %.* trace: collect_build_postponed (2): skip being built existing dependent bax of dependency libbar trace: collect_build_postponed (2): skip being dropped existing dependent baz of dependency libbar trace: collect_build_postponed (2): cfg-negotiate begin {bax | libbox->{bax/2,1} libbar->{bax/2,1}} @@ -7757,13 +7575,13 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {bax | libbox->{bax/2,1} libbar->{bax/2,1}} trace: collect_build_postponed (1): end {bax^ | libfoo->{bax/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: downgrade libbox/0.1.0 config.libbox.extras=true (set by bax) reconfigure bax/1.0.0 (dependent of libbox, libfoo) + config.bax.libfoo_extras=true (set by bax) drop baz/1.0.0 (unused) trace: execute_plan: simulate: no %.* @@ -8259,55 +8077,46 @@ test.arguments += --sys-no-query # # foo: depends: libfoo(c) # - $* bas bax bix buz buc 2>>~%EOE%; + $* bas bax bix buz buc 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add bas/1.0.0 trace: collect_build: add bax/1.0.0 trace: collect_build: add bix/1.0.0 trace: collect_build: add buz/1.0.0 trace: collect_build: add buc/1.0.0 trace: collect_build_prerequisites: begin bas/1.0.0 - %.* trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bas/1.0.0 trace: postponed_configurations::add: create {bas | libbar->{bas/1,1}} trace: collect_build_prerequisites: postpone bas/1.0.0 trace: collect_build_prerequisites: begin bax/1.0.0 - %.* trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: create {bax | libfoo->{bax/1,1}} trace: collect_build_prerequisites: postpone bax/1.0.0 trace: collect_build_prerequisites: begin bix/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bix/1.0.0 trace: collect_build: add bar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency bar/1.0.0 of dependent bix/1.0.0 trace: postponed_configurations::add: add {bix 1,1: libbar bar} to {bas | libbar->{bas/1,1}} trace: collect_build_prerequisites: postpone bix/1.0.0 trace: collect_build_prerequisites: begin buz/1.0.0 - %.* trace: collect_build: add bux/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency bux/1.0.0 of dependent buz/1.0.0 trace: postponed_configurations::add: create {buz | bux->{buz/1,1}} trace: collect_build_prerequisites: postpone buz/1.0.0 trace: collect_build_prerequisites: begin buc/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent buc/1.0.0 trace: postponed_configurations::add: add {buc 1,1: libfoo} to {bax | libfoo->{bax/1,1}} trace: collect_build_prerequisites: postpone buc/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/1,1}} - %.* trace: collect_build_postponed (1): cfg-negotiate begin {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/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_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 1,1: libbar} to {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/1,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated @@ -8316,43 +8125,35 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bas/1.0.0 trace: collect_build_prerequisites: resume bas/1.0.0 - %.* trace: collect_build: add bus/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency bus/1.0.0 of dependent bas/1.0.0 trace: postponed_configurations::add: create {bas | bus->{bas/2,1}} trace: collect_build_prerequisites: postpone bas/1.0.0 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_prerequisites: dep-postpone dependency bux/1.0.0 of dependent bix/1.0.0 since already in cluster {buz | bux->{buz/1,1}} trace: collect_build_prerequisites: end bix/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {bar bas bix | libbar->{bar/1,1 bas/1,1 bix/1,1} bar->{bix/1,1}}! trace: collect_build_postponed (2): begin {bax buc | libfoo->{bax/1,1 buc/1,1}} - %.* trace: collect_build_postponed (2): cfg-negotiate begin {bax buc | libfoo->{bax/1,1 buc/1,1}} - %.* trace: collect_build_postponed (2): 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 (2): recursively collect cfg-negotiated dependents trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: add libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bar bas bix | libbar->{bar/1,1 bas/1,1 bix/1,1} bar->{bix/1,1}}! - %.* trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bar bas bax bix | libbar->{bar/1,1 bas/1,1 bax/2,1 bix/1,1} bar->{bix/1,1} libbox->{bax/2,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/1,1}} failed due to dependent bax, refining configuration trace: collect_build_postponed (1): begin {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/1,1}} - %.* trace: collect_build_postponed (1): cfg-negotiate begin {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/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_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 1,1: libbar} to {bas bix | libbar->{bas/1,1 bix/1,1} bar->{bix/1,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated @@ -8361,19 +8162,16 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bas/1.0.0 trace: collect_build_prerequisites: resume bas/1.0.0 - %.* trace: collect_build: add bus/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency bus/1.0.0 of dependent bas/1.0.0 trace: postponed_configurations::add: create {bas | bus->{bas/2,1}} trace: collect_build_prerequisites: postpone bas/1.0.0 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_prerequisites: dep-postpone dependency bux/1.0.0 of dependent bix/1.0.0 since already in cluster {buz | bux->{buz/1,1}} trace: collect_build_prerequisites: end bix/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {bar bas bix | libbar->{bar/1,1 bas/1,1 bix/1,1} bar->{bix/1,1}}! trace: collect_build_postponed (2): begin {bax buc | libfoo->{bax/1,1 buc/1,1}} - %.* trace: collect_build_postponed (2): cfg-negotiate begin {bax buc | libfoo->{bax/1,1 buc/1,1}} trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/1.0.0 @@ -8381,12 +8179,10 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bax/1.0.0 trace: collect_build_prerequisites: resume bax/1.0.0 - %.* trace: collect_build: add libbox/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bar bas bix | libbar->{bar/1,1 bas/1,1 bix/1,1} bar->{bix/1,1}}! - %.* trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated trace: collect_build_prerequisites: collecting cfg-postponed dependency libbox/1.0.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: begin libbox/1.0.0 @@ -8395,18 +8191,14 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end bax/1.0.0 trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent buc/1.0.0 trace: collect_build_prerequisites: resume buc/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency bux/1.0.0 of dependent buc/1.0.0 trace: postponed_configurations::add: add {buc 2,1: bux} to {buz | bux->{buz/1,1}} trace: collect_build_prerequisites: postpone buc/1.0.0 trace: collect_build_postponed (2): cfg-negotiate end {bax buc | libfoo->{bax/1,1 buc/1,1}}! trace: collect_build_postponed (3): begin {buc buz | bux->{buc/2,1 buz/1,1}} - %.* trace: collect_build_postponed (3): cfg-negotiate begin {buc buz | bux->{buc/2,1 buz/1,1}} - %.* trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies 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 1,1: libbar} to {bar bas bax bix | libbar->{bar/1,1 bas/1,1 bax/2,1 bix/1,1} bar->{bix/1,1} libbox->{bax/2,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bux/1.0.0 is negotiated @@ -8421,12 +8213,9 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end buz/1.0.0 trace: collect_build_postponed (3): cfg-negotiate end {buc buz | bux->{buc/2,1 buz/1,1}}! trace: collect_build_postponed (4): begin {bas | bus->{bas/2,1}} - %.* trace: collect_build_postponed (4): cfg-negotiate begin {bas | bus->{bas/2,1}} - %.* trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin bus/1.0.0 - %.* trace: collect_build: add libbaz/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: create {bus | libbaz->{bus/1,1}} @@ -8437,28 +8226,22 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end bas/1.0.0 trace: collect_build_postponed (4): cfg-negotiate end {bas | bus->{bas/2,1}}! trace: collect_build_postponed (5): begin {bus | libbaz->{bus/1,1}} - %.* trace: collect_build_postponed (5): cfg-negotiate begin {bus | libbaz->{bus/1,1}} - %.* trace: collect_build_postponed (5): 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 (5): recursively collect cfg-negotiated dependents trace: collect_build_postponed (5): select cfg-negotiated dependency alternative for dependent bus/1.0.0 trace: collect_build_prerequisites: resume bus/1.0.0 - %.* trace: collect_build: add foo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency foo/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: create {bus | foo->{bus/2,1}} trace: collect_build_prerequisites: postpone bus/1.0.0 trace: collect_build_postponed (5): cfg-negotiate end {bus | libbaz->{bus/1,1}}! trace: collect_build_postponed (6): begin {bus | foo->{bus/2,1}} - %.* trace: collect_build_postponed (6): cfg-negotiate begin {bus | foo->{bus/2,1}} - %.* trace: collect_build_postponed (6): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin 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 1,1: libfoo} to {bax buc | libfoo->{bax/1,1 buc/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent foo/1.0.0 is negotiated @@ -8487,12 +8270,14 @@ test.arguments += --sys-no-query config.libfoo.extras=true (set by bax) new foo/1.0.0 (required by bus) config.foo.extras=true (set by bus) + config.foo.libfoo_extras=true (set by foo) new bus/1.0.0 (required by bas) config.bus.extras=true (set by bas) new libbar/1.0.0 (required by bar, bas, bax, bix, bux) config.libbar.extras=true (set by bas) new bas/1.0.0 new bax/1.0.0 + config.bax.libfoo_extras=true (set by bax) new bar/1.0.0 (required by bix) config.bar.extras=true (set by bix) new bux/1.0.0 (required by bix, buc, buz) @@ -12559,20 +12344,17 @@ test.arguments += --sys-no-query { $clone_cfg; - $* foo fox/0.1.0 ?libbar 2>>~%EOE%; + $* foo fox/0.1.0 ?libbar 2>&1 | $filter 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/0.1.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/0.1.0 - %.* trace: collect_build_prerequisites: alt-postpone dependent fox/0.1.0 since max index is reached: 0 info: dependency alternative: libfoo { @@ -12580,15 +12362,12 @@ test.arguments += --sys-no-query { config.libfoo.extras = true } - accept (false) } trace: collect_build_prerequisites: postpone fox/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12599,34 +12378,26 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! trace: collect_build_postponed (1): index 1 collect alt-postponed fox/0.1.0 trace: collect_build_prerequisites: resume fox/0.1.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/0.1.0 - %.* trace: postponed_configurations::add: add {fox 1,1: libfoo} to {foo | libfoo->{foo/1,1}}! - %.* trace: collect_build_prerequisites: unable to cfg-negotiate dependency alternative 1,1 for dependent fox/0.1.0, throwing unaccept_alternative trace: pkg_build: collection failed due to unacceptable alternative, retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add foo/1.0.0 trace: collect_build: add fox/0.1.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/0.1.0 trace: collect_build_prerequisites: dependency alternative 1,1 for dependent fox/0.1.0 is unacceptable, skipping - %.* trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent fox/0.1.0 trace: collect_build_prerequisites: begin libbar/1.0.0 trace: collect_build_prerequisites: end libbar/1.0.0 trace: collect_build_prerequisites: end fox/0.1.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12648,6 +12419,7 @@ test.arguments += --sys-no-query new libfoo/1.0.0 (required by foo) config.libfoo.extras=true (set by foo) new foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) new libbar/1.0.0 (required by fox) new fox/0.1.0 trace: execute_plan: simulate: no @@ -12669,20 +12441,17 @@ test.arguments += --sys-no-query { $clone_cfg; - $* foo fox/0.2.0 2>>~%EOE%; + $* foo fox/0.2.0 2>&1 | $filter 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/0.2.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/0.2.0 - %.* trace: collect_build_prerequisites: alt-postpone dependent fox/0.2.0 since max index is reached: 0 info: dependency alternative: libfoo { @@ -12690,15 +12459,12 @@ test.arguments += --sys-no-query { config.libfoo.extras = false } - accept (!$config.libfoo.extras) } trace: collect_build_prerequisites: postpone fox/0.2.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12709,15 +12475,11 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! trace: collect_build_postponed (1): index 1 collect alt-postponed fox/0.2.0 trace: collect_build_prerequisites: resume fox/0.2.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/0.2.0 - %.* trace: postponed_configurations::add: add {fox 1,1: libfoo} to {foo | libfoo->{foo/1,1}}! - %.* trace: collect_build_prerequisites: cfg-postponing dependent fox/0.2.0 involves (being) 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 | libfoo->{foo/1,1}} failed due to dependent fox, refining configuration trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12729,14 +12491,11 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! trace: collect_build_postponed (1): index 1 collect alt-postponed fox/0.2.0 trace: collect_build_prerequisites: resume fox/0.2.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/0.2.0 - %.* trace: postponed_configurations::add: add {fox 1,1: libfoo} to {foo | libfoo->{foo/1,1}}! trace: collect_build_prerequisites: cfg-postponing dependent fox/0.2.0 involves (being) 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 | libfoo->{foo/1,1}} failed due to dependent fox, refining configuration trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12748,26 +12507,20 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! trace: collect_build_postponed (1): index 1 collect alt-postponed fox/0.2.0 trace: collect_build_prerequisites: resume fox/0.2.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/0.2.0 - %.* trace: postponed_configurations::add: add {fox 1,1: libfoo} to {foo | libfoo->{foo/1,1}}! trace: collect_build_prerequisites: unable to cfg-negotiate dependency alternative 1,1 for dependent fox/0.2.0, throwing unaccept_alternative trace: pkg_build: collection failed due to unacceptable alternative, retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add foo/1.0.0 trace: collect_build: add fox/0.2.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/0.2.0 trace: collect_build_prerequisites: dependency alternative 1,1 for dependent fox/0.2.0 is unacceptable, skipping - %.* trace: collect_build_prerequisites: alt-postpone dependent fox/0.2.0 since max index is reached: 1 info: dependency alternative: libfoo { @@ -12775,13 +12528,11 @@ test.arguments += --sys-no-query { config.libfoo.extras = true } - accept (true) } trace: collect_build_prerequisites: postpone fox/0.2.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,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 @@ -12794,7 +12545,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): index 1 collect alt-postponed fox/0.2.0 trace: collect_build_prerequisites: resume fox/0.2.0 trace: collect_build_prerequisites: dependency alternative 1,1 for dependent fox/0.2.0 is unacceptable, skipping - %.* trace: collect_build_prerequisites: alt-postpone dependent fox/0.2.0 since max index is reached: 1 info: dependency alternative: libfoo { @@ -12802,27 +12552,26 @@ test.arguments += --sys-no-query { config.libfoo.extras = true } - accept (true) } trace: collect_build_prerequisites: postpone fox/0.2.0 trace: collect_build_postponed (1): index 2 collect alt-postponed fox/0.2.0 trace: collect_build_prerequisites: resume fox/0.2.0 trace: collect_build_prerequisites: dependency alternative 1,1 for dependent fox/0.2.0 is unacceptable, skipping - %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/0.2.0 - %.* trace: postponed_configurations::add: add {fox 1,2: libfoo} to {foo | libfoo->{foo/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent fox/0.2.0 is negotiated trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent fox/0.2.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end fox/0.2.0 trace: collect_build_postponed (1): end {foo | libfoo->{foo/1,1}} trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes %.* build plan: new libfoo/1.0.0 (required by foo, fox) config.libfoo.extras=true (set by foo) new foo/1.0.0 + config.foo.libfoo_extras=true (set by foo) new fox/0.2.0 trace: execute_plan: simulate: no %.* @@ -12935,10 +12684,9 @@ test.arguments += --sys-no-query libfoo configured !0.1.0 available 1.0.0 EOO - $* --upgrade --recursive 2>>~%EOE%; + $* --upgrade --recursive 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add tix/1.0.0 trace: collect_build_prerequisites: skip configured tix/1.0.0 trace: execute_plan: simulate: yes @@ -12946,11 +12694,8 @@ test.arguments += --sys-no-query trace: evaluate_dependency: libfoo/0.1.0: update to libfoo/1.0.0 %.* trace: pkg_build: refine package collection/plan execution - %.* trace: collect_build: add libfoo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libfoo/1.0.0 @@ -12958,50 +12703,38 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tix/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tix/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluated tex/1.0.0 trace: collect_build_prerequisites: reeval tix/1.0.0 - %.* trace: postponed_configurations::add: add {tix^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tix/1.0.0 results in {tex^ tix^ | libbar->{tex/1,1 tix/1,1}} trace: collect_build_prerequisites: re-evaluated tix/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {tex^ tix^ | libbar->{tex/1,1 tix/1,1}} - %.* trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: skip configured 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 tex/1.0.0 trace: collect_build_prerequisites: resume tex/1.0.0 - %.* trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} trace: collect_build_prerequisites: postpone tex/1.0.0 trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tix/1.0.0 trace: collect_build_prerequisites: resume tix/1.0.0 - %.* trace: collect_build_prerequisites: cannot cfg-postpone dependency tex/1.0.0 of dependent tix/1.0.0 (collected prematurely), throwing postpone_dependency trace: pkg_build: collection failed due to prematurely collected dependency (tex), retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add tix/1.0.0 trace: collect_build_prerequisites: skip configured tix/1.0.0 trace: collect_build: add libfoo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libfoo/1.0.0 @@ -13009,17 +12742,13 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tix/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tix/1.0.0: 1,1 trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tix/1.0.0 - %.* trace: postponed_configurations::add: add {tix^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tix/1.0.0 results in {tex^ tix^ | libbar->{tex/1,1 tix/1,1}} trace: collect_build_prerequisites: re-evaluated tix/1.0.0 @@ -13032,23 +12761,19 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tix/1.0.0 trace: collect_build_prerequisites: resume tix/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency tex/1.0.0 of dependent tix/1.0.0 trace: postponed_configurations::add: create {tix | tex->{tix/2,1}} trace: collect_build_prerequisites: postpone tix/1.0.0 trace: collect_build_postponed (1): cfg-negotiate end {tex^ tix^ | libbar->{tex/1,1 tix/1,1}}! trace: collect_build_postponed (2): begin {tix | tex->{tix/2,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tix of dependency tex trace: collect_build_postponed (2): cfg-negotiate begin {tix | tex->{tix/2,1}} trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin tex/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tex^ tix^ | libbar->{tex/1,1 tix/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping - %.* trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} @@ -13059,10 +12784,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end tix/1.0.0 trace: collect_build_postponed (2): cfg-negotiate end {tix | tex->{tix/2,1}}! trace: collect_build_postponed (3): begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libfoo trace: collect_build_postponed (3): cfg-negotiate begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/1.0.0 trace: collect_build_prerequisites: end libfoo/1.0.0 @@ -13075,7 +12798,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tix | tex->{tix/2,1}} trace: collect_build_postponed (1): end {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -13083,6 +12805,7 @@ test.arguments += --sys-no-query config.libfoo.extras=true (set by tex) reconfigure/update tex/1.0.0 (dependent of libfoo) config.tex.extras=true (set by tix) + config.tex.libfoo_extras=true (set by tex) reconfigure/update tix/1.0.0 trace: execute_plan: simulate: no %.* @@ -13125,10 +12848,9 @@ test.arguments += --sys-no-query libfoo configured !0.1.0 available 1.0.0 EOO - $* --upgrade --recursive 2>>~%EOE%; + $* --upgrade --recursive 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add tiz/1.0.0 trace: collect_build_prerequisites: skip configured tiz/1.0.0 trace: execute_plan: simulate: yes @@ -13136,11 +12858,8 @@ test.arguments += --sys-no-query trace: evaluate_dependency: libfoo/0.1.0: update to libfoo/1.0.0 %.* trace: pkg_build: refine package collection/plan execution - %.* trace: collect_build: add libfoo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libfoo/1.0.0 @@ -13148,32 +12867,23 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluated tex/1.0.0 trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: cannot re-evaluate existing dependent tiz/1.0.0 due to dependency tex/1.0.0 (collected prematurely), throwing postpone_dependency trace: pkg_build: collection failed due to prematurely collected dependency (tex), retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add tiz/1.0.0 trace: collect_build_prerequisites: skip configured tiz/1.0.0 trace: collect_build: add libfoo/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build: add libbar/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libfoo/1.0.0 @@ -13181,52 +12891,40 @@ test.arguments += --sys-no-query trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: postponed_configurations::add: create {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tiz/1.0.0 results in {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluated tiz/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (1): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies - %.* trace: collect_build_prerequisites: skip configured libbar/1.0.0 trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents trace: collect_build_postponed (1): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): cfg-negotiate end {tex^ | libbar->{tex/1,1}}! trace: collect_build_postponed (2): begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tiz of dependency tex trace: collect_build_postponed (2): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin tex/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tex^ | libbar->{tex/1,1}}! trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves (being) negotiated configurations and results in {tex^ | libbar->{tex/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tex^ | libbar->{tex/1,1}} failed due to dependent tex, refining configuration trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: postponed_configurations::add: create {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tiz/1.0.0 results in {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluated tiz/1.0.0 @@ -13238,17 +12936,14 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): cfg-negotiate end {tex^ | libbar->{tex/1,1}}! trace: collect_build_postponed (2): begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tiz of dependency tex trace: collect_build_postponed (2): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin tex/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tex^ | libbar->{tex/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping - %.* trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} @@ -13256,7 +12951,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tiz/1.0.0 trace: collect_build_prerequisites: resume tiz/1.0.0 - %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tiz/1.0.0 trace: postponed_configurations::add: add {tiz 2,1: libbar} to {tex^ | libbar->{tex/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tiz/1.0.0 is negotiated @@ -13264,10 +12958,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end tiz/1.0.0 trace: collect_build_postponed (2): cfg-negotiate end {tiz^ | tex->{tiz/1,1}}! trace: collect_build_postponed (3): begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libfoo trace: collect_build_postponed (3): cfg-negotiate begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin libfoo/1.0.0 trace: collect_build_prerequisites: end libfoo/1.0.0 @@ -13280,7 +12972,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tiz^ | tex->{tiz/1,1}} trace: collect_build_postponed (1): end {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -13288,7 +12979,9 @@ test.arguments += --sys-no-query config.libfoo.extras=true (set by tex) reconfigure/update tex/1.0.0 (dependent of libfoo) config.tex.extras=true (set by tiz) + config.tex.libfoo_extras=true (set by tex) reconfigure/update tiz/1.0.0 + config.tiz.tex_extras=true (set by tiz) trace: execute_plan: simulate: no %.* EOE @@ -14324,18 +14017,14 @@ test.arguments += --sys-no-query libfoo configured 1.0.0 EOO - $* --upgrade --recursive 2>>~%EOE%; + $* --upgrade --recursive 2>&1 | $filter 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libbar/1.0.0 trace: collect_build: add tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libbar/1.0.0 trace: collect_build: add tex/1.0.0 @@ -14345,35 +14034,25 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: skip configured tiz/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* trace: collect_build: pick libbar/1.0.0 over libbar/0.1.0 trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: re-evaluated tex/1.0.0 trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: cannot re-evaluate existing dependent tiz/1.0.0 due to dependency tex/1.0.0 (collected prematurely), throwing postpone_dependency trace: pkg_build: collection failed due to prematurely collected dependency (tex), retry from scratch - %.* trace: pkg_build: refine package collection/plan execution from scratch - %.* trace: collect_build: add libbar/1.0.0 trace: collect_build: add tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libbar/1.0.0 trace: collect_build: add tex/1.0.0 @@ -14383,54 +14062,42 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: skip configured tiz/1.0.0 trace: collect_build_postponed (0): begin trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: postponed_configurations::add: add {tiz^ 1,1: tex} to {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tiz/1.0.0 results in {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluated tiz/1.0.0 trace: collect_build_postponed (1): cfg-negotiate begin {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (1): skip dep-postponed existing dependent tex 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): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): cfg-negotiate end {tex^ | libbar->{tex/1,1}}! trace: collect_build_postponed (2): begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tiz of dependency tex trace: collect_build_postponed (2): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin tex/1.0.0 - %.* trace: collect_build: pick libbar/1.0.0 over libbar/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tex^ | libbar->{tex/1,1}}! trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves (being) negotiated configurations and results in {tex^ | libbar->{tex/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tex^ | libbar->{tex/1,1}} failed due to dependent tex, refining configuration trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - %.* trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - %.* trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 - %.* trace: postponed_configurations::add: add {tiz^ 1,1: tex} to {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluating dependent tiz/1.0.0 results in {tiz^ | tex->{tiz/1,1}} trace: collect_build_prerequisites: re-evaluated tiz/1.0.0 @@ -14443,18 +14110,15 @@ test.arguments += --sys-no-query trace: collect_build_postponed (1): skip dep-postponed existing dependent tex trace: collect_build_postponed (1): cfg-negotiate end {tex^ | libbar->{tex/1,1}}! trace: collect_build_postponed (2): begin {tiz^ | tex->{tiz/1,1}} - %.* trace: collect_build_postponed (2): skip being built existing dependent tiz of dependency tex trace: collect_build_postponed (2): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: begin tex/1.0.0 - %.* trace: collect_build: pick libbar/1.0.0 over libbar/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tex^ | libbar->{tex/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping - %.* trace: collect_build: add libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: create {tex | libfoo->{tex/2,1}} @@ -14462,7 +14126,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tiz/1.0.0 trace: collect_build_prerequisites: resume tiz/1.0.0 - %.* trace: collect_build: pick libbar/1.0.0 over libbar/0.1.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tiz/1.0.0 trace: postponed_configurations::add: add {tiz 2,1: libbar} to {tex^ | libbar->{tex/1,1}}! @@ -14471,10 +14134,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end tiz/1.0.0 trace: collect_build_postponed (2): cfg-negotiate end {tiz^ | tex->{tiz/1,1}}! trace: collect_build_postponed (3): begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libfoo trace: collect_build_postponed (3): cfg-negotiate begin {tex | libfoo->{tex/2,1}} - %.* trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies trace: collect_build_prerequisites: skip configured libfoo/1.0.0 trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents @@ -14486,7 +14147,6 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tiz^ | tex->{tiz/1,1}} trace: collect_build_postponed (1): end {tex^ | libbar->{tex/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: @@ -14494,7 +14154,9 @@ test.arguments += --sys-no-query config.libbar.extras=true (set by tex) reconfigure/update tex/1.0.0 (dependent of libbar) config.tex.extras=true (set by tiz) + config.tex.libfoo_extras=true (set by tex) reconfigure/update tiz/1.0.0 + config.tiz.tex_extras=true (set by tiz) trace: execute_plan: simulate: no %.* EOE @@ -14530,7 +14192,7 @@ test.arguments += --sys-no-query # # tez: depends: libbox(c) # depends: toz == 0.1.0 (c) - # depends: libbar + # depends: libbar (c) # # toz/0.1.0: # @@ -14700,7 +14362,6 @@ test.arguments += --sys-no-query trace: execute_plan: simulate: yes %.* trace: evaluate_dependency: libbaz/1.0.0: unused - %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add tez/1.0.0 trace: collect_build_prerequisites: begin tez/1.0.0 @@ -14850,12 +14511,16 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tez | toz->{tez/2,1}} trace: collect_build_postponed (1): end {tez | libbox->{tez/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: new libbox/1.0.0 (required by tez) config.libbox.extras=true (set by tez) + reconfigure/update tex/1.0.0 (required by tiz) + config.tex.extras=true (set by tiz) + config.tex.libfoo_extras=true (set by tex) + reconfigure tiz/1.0.0 (dependent of libbar) + config.tiz.tex_extras=true (set by tiz) drop libbaz/1.0.0 (unused) downgrade toz/0.1.0 (required by tez) config.toz.extras=true (set by tez) @@ -15274,12 +14939,16 @@ test.arguments += --sys-no-query trace: collect_build_postponed (2): end {tuz^ | toz->{tuz/1,1}} trace: collect_build_postponed (1): end {tix | libbar->{tix/1,1}} trace: collect_build_postponed (0): end - %.* trace: execute_plan: simulate: yes %.* build plan: new libbaz/1.0.0 (required by toz) config.libbaz.extras=true (set by toz) + reconfigure/update tex/1.0.0 (required by tix, tiz) + config.tex.extras=true (set by tix) + config.tex.libfoo_extras=true (set by tex) + reconfigure tiz/1.0.0 (dependent of libbar) + config.tiz.tex_extras=true (set by tiz) new tix/1.0.0 upgrade toz/1.0.0 config.toz.extras=true (set by tuz) @@ -17813,6 +17482,7 @@ test.arguments += --sys-no-query upgrade libbar/1.0.0 config.libbar.extras=true (set by bax) reconfigure/update bax/1.0.0 + config.bax.libfoo_extras=true (set by bax) upgrade libbiz/1.0.0 trace: execute_plan: simulate: no %.* @@ -17831,6 +17501,187 @@ test.arguments += --sys-no-query $pkg_drop libbar libbiz bax } + : optimization + : + { + +$clone_cfg + + : dependency-after-config-clause + : + { + $clone_cfg; + + $* tax ?libfoo/0.1.0 2>!; + + $pkg_status -r >>EOO; + !tax configured 1.0.0 + libbar configured 1.0.0 + libfoo configured !0.1.0 available 1.0.0 + EOO + + $* ?libfoo 2>&1 | $filter 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libfoo/0.1.0: update to libfoo/1.0.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval tax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated tax/1.0.0: 1,1 re-evaluation is optional + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: execute_plan: simulate: yes + %.* + build plan: + upgrade libfoo/1.0.0 + reconfigure tax (dependent of libfoo) + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_status -r >>EOO; + !tax configured 1.0.0 + libbar configured 1.0.0 + libfoo configured 1.0.0 + EOO + + $pkg_drop tax + } + + : dependency-before-config-clause + : + { + $clone_cfg; + + $* tex/0.2.0 ?libbar/0.1.0 2>!; + + $pkg_status -r >>EOO; + !tex configured !0.2.0 available 1.0.0 0.3.0 + libbar configured !0.1.0 available 1.0.0 + libfoo configured 1.0.0 + EOO + + $* ?libbar 2>&1 | $filter 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbar/0.1.0: update to libbar/1.0.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval tex/0.2.0 + trace: collect_build_prerequisites: pre-reevaluated tex/0.2.0: 2,1 re-evaluation is optional + trace: collect_build_prerequisites: begin libbar/1.0.0 + trace: collect_build_prerequisites: end libbar/1.0.0 + trace: execute_plan: simulate: yes + %.* + build plan: + upgrade libbar/1.0.0 + reconfigure tex (dependent of libbar) + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_status -r >>EOO; + !tex configured !0.2.0 available 1.0.0 0.3.0 + libbar configured 1.0.0 + libfoo configured 1.0.0 + EOO + + $pkg_drop tex + } + + : other-config-clause + : + { + $clone_cfg; + + $* tax ?libfoo/0.1.0 2>!; + + $pkg_status -r >>EOO; + !tax configured 1.0.0 + libbar configured 1.0.0 + libfoo configured !0.1.0 available 1.0.0 + EOO + + $* libfoo foo/0.1.0 2>&1 | $filter 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libfoo/1.0.0 + trace: collect_build: add foo/0.1.0 + trace: collect_build_prerequisites: pre-reeval tax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated tax/1.0.0: 1,1 re-evaluation is optional + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: begin foo/0.1.0 + trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 + trace: collect_build_prerequisites: cannot cfg-postpone dependency libfoo/1.0.0 of dependent foo/0.1.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 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build: add foo/0.1.0 + trace: pkg_build: dep-postpone user-specified libfoo + trace: collect_build_prerequisites: begin foo/0.1.0 + trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/0.1.0 + trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}} + trace: collect_build_prerequisites: postpone foo/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,1}} + trace: collect_build_prerequisites: pre-reeval tax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated tax/1.0.0: 1,1 re-evaluation is optional + trace: collect_build: add libbar/1.0.0 + trace: collect_build_postponed (1): re-evaluate existing dependents for {foo | libfoo->{foo/1,1}} + trace: collect_build: add tax/1.0.0 + trace: collect_build_prerequisites: reeval tax/1.0.0 + trace: postponed_configurations::add: create {tax^ | libbar->{tax/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent tax/1.0.0 results in {tax^ | libbar->{tax/1,1}} + trace: collect_build_prerequisites: re-evaluated tax/1.0.0 + 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/0.1.0 + trace: collect_build_prerequisites: resume foo/0.1.0 + trace: collect_build_prerequisites: end foo/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}! + trace: collect_build_postponed (2): begin {tax^ | libbar->{tax/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tax of dependency libbar + trace: collect_build_postponed (2): cfg-negotiate begin {tax^ | libbar->{tax/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured 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 tax/1.0.0 + trace: collect_build_prerequisites: resume tax/1.0.0 + trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.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,1}}! + trace: collect_build_postponed (2): end {tax^ | libbar->{tax/1,1}} + trace: collect_build_postponed (1): end {foo | libfoo->{foo/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + build plan: + upgrade libfoo/1.0.0 + config.libfoo.extras=true (set by foo) + reconfigure tax/1.0.0 (dependent of libfoo) + new foo/0.1.0 + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_status -r >>EOO; + !libfoo configured 1.0.0 + !tax configured 1.0.0 + libbar configured 1.0.0 + !libfoo configured 1.0.0 + !foo configured !0.1.0 available 1.0.0 0.2.0 + !libfoo configured 1.0.0 + EOO + + $pkg_drop tax foo libfoo + } + } + : repo-packages : : Don't match the tracing but just make sure that pkg-build doesn't crash |