From 8365a8f55e05628109db9cf6c3321932aa0b0f16 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 19 Dec 2023 21:32:52 +0300 Subject: Try to automatically resolve unsatisfied dependency constraints by specifying dependent version --- tests/common/satisfy/libbaz-1.2.0.tar.gz | Bin 400 -> 383 bytes tests/common/satisfy/libfoo-3.0.0.tar.gz | Bin 360 -> 416 bytes tests/common/satisfy/t4k/libbar-1.0.0.tar.gz | Bin 0 -> 364 bytes tests/common/satisfy/t4k/libbaz-1.0.0.tar.gz | Bin 0 -> 355 bytes tests/common/satisfy/t4k/libfax-1.0.0.tar.gz | Bin 0 -> 365 bytes tests/common/satisfy/t4k/libfax-2.0.0.tar.gz | Bin 0 -> 364 bytes tests/common/satisfy/t4k/libfaz-1.0.0.tar.gz | Bin 0 -> 360 bytes tests/common/satisfy/t4k/libfaz-2.0.0.tar.gz | Bin 0 -> 360 bytes tests/common/satisfy/t4k/libfex-1.0.0.tar.gz | Bin 0 -> 362 bytes tests/common/satisfy/t4k/libfex-2.0.0.tar.gz | Bin 0 -> 360 bytes tests/common/satisfy/t4k/libfix-1.0.0.tar.gz | Bin 0 -> 360 bytes tests/common/satisfy/t4k/libfix-2.0.0.tar.gz | Bin 0 -> 361 bytes tests/common/satisfy/t4k/libfoo-1.0.0.tar.gz | Bin 0 -> 359 bytes tests/common/satisfy/t4k/libfoo-2.0.0.tar.gz | Bin 0 -> 360 bytes tests/common/satisfy/t4k/libfox-1.0.0.tar.gz | Bin 0 -> 361 bytes tests/common/satisfy/t4k/libfox-1.2.0.tar.gz | Bin 0 -> 376 bytes tests/common/satisfy/t4k/libfox-2.0.0.tar.gz | Bin 0 -> 362 bytes tests/common/satisfy/t4k/libfux-1.0.0.tar.gz | Bin 0 -> 371 bytes tests/common/satisfy/t4k/libfux-2.0.0.tar.gz | Bin 0 -> 371 bytes tests/common/satisfy/t4k/libfuz-1.0.0.tar.gz | Bin 0 -> 349 bytes tests/common/satisfy/t4k/libfuz-2.0.0.tar.gz | Bin 0 -> 348 bytes tests/common/satisfy/t4k/repositories.manifest | 1 + tests/pkg-build.testscript | 2775 +++++++++++++++++++++--- tests/pkg-build/t4k | 1 + 24 files changed, 2509 insertions(+), 268 deletions(-) create mode 100644 tests/common/satisfy/t4k/libbar-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libbaz-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfax-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfax-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfaz-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfaz-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfex-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfex-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfix-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfix-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfoo-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfoo-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfox-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfox-1.2.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfox-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfux-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfux-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfuz-1.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/libfuz-2.0.0.tar.gz create mode 100644 tests/common/satisfy/t4k/repositories.manifest create mode 120000 tests/pkg-build/t4k (limited to 'tests') diff --git a/tests/common/satisfy/libbaz-1.2.0.tar.gz b/tests/common/satisfy/libbaz-1.2.0.tar.gz index 86b6e25..ad05b7e 100644 Binary files a/tests/common/satisfy/libbaz-1.2.0.tar.gz and b/tests/common/satisfy/libbaz-1.2.0.tar.gz differ diff --git a/tests/common/satisfy/libfoo-3.0.0.tar.gz b/tests/common/satisfy/libfoo-3.0.0.tar.gz index 55dc602..3ef4fdf 100644 Binary files a/tests/common/satisfy/libfoo-3.0.0.tar.gz and b/tests/common/satisfy/libfoo-3.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libbar-1.0.0.tar.gz b/tests/common/satisfy/t4k/libbar-1.0.0.tar.gz new file mode 100644 index 0000000..4fbd21e Binary files /dev/null and b/tests/common/satisfy/t4k/libbar-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libbaz-1.0.0.tar.gz b/tests/common/satisfy/t4k/libbaz-1.0.0.tar.gz new file mode 100644 index 0000000..dc17b9f Binary files /dev/null and b/tests/common/satisfy/t4k/libbaz-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfax-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfax-1.0.0.tar.gz new file mode 100644 index 0000000..8145884 Binary files /dev/null and b/tests/common/satisfy/t4k/libfax-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfax-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfax-2.0.0.tar.gz new file mode 100644 index 0000000..7ab921f Binary files /dev/null and b/tests/common/satisfy/t4k/libfax-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfaz-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfaz-1.0.0.tar.gz new file mode 100644 index 0000000..3ab004a Binary files /dev/null and b/tests/common/satisfy/t4k/libfaz-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfaz-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfaz-2.0.0.tar.gz new file mode 100644 index 0000000..1c3d003 Binary files /dev/null and b/tests/common/satisfy/t4k/libfaz-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfex-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfex-1.0.0.tar.gz new file mode 100644 index 0000000..f008cc0 Binary files /dev/null and b/tests/common/satisfy/t4k/libfex-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfex-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfex-2.0.0.tar.gz new file mode 100644 index 0000000..9cefe9f Binary files /dev/null and b/tests/common/satisfy/t4k/libfex-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfix-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfix-1.0.0.tar.gz new file mode 100644 index 0000000..fe1a6e9 Binary files /dev/null and b/tests/common/satisfy/t4k/libfix-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfix-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfix-2.0.0.tar.gz new file mode 100644 index 0000000..7b09f8b Binary files /dev/null and b/tests/common/satisfy/t4k/libfix-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfoo-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfoo-1.0.0.tar.gz new file mode 100644 index 0000000..38bb25b Binary files /dev/null and b/tests/common/satisfy/t4k/libfoo-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfoo-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfoo-2.0.0.tar.gz new file mode 100644 index 0000000..b868a61 Binary files /dev/null and b/tests/common/satisfy/t4k/libfoo-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfox-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfox-1.0.0.tar.gz new file mode 100644 index 0000000..0a1e328 Binary files /dev/null and b/tests/common/satisfy/t4k/libfox-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfox-1.2.0.tar.gz b/tests/common/satisfy/t4k/libfox-1.2.0.tar.gz new file mode 100644 index 0000000..34efae0 Binary files /dev/null and b/tests/common/satisfy/t4k/libfox-1.2.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfox-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfox-2.0.0.tar.gz new file mode 100644 index 0000000..ce73b71 Binary files /dev/null and b/tests/common/satisfy/t4k/libfox-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfux-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfux-1.0.0.tar.gz new file mode 100644 index 0000000..983cda7 Binary files /dev/null and b/tests/common/satisfy/t4k/libfux-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfux-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfux-2.0.0.tar.gz new file mode 100644 index 0000000..0f63133 Binary files /dev/null and b/tests/common/satisfy/t4k/libfux-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfuz-1.0.0.tar.gz b/tests/common/satisfy/t4k/libfuz-1.0.0.tar.gz new file mode 100644 index 0000000..42b2c0e Binary files /dev/null and b/tests/common/satisfy/t4k/libfuz-1.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/libfuz-2.0.0.tar.gz b/tests/common/satisfy/t4k/libfuz-2.0.0.tar.gz new file mode 100644 index 0000000..c31d82a Binary files /dev/null and b/tests/common/satisfy/t4k/libfuz-2.0.0.tar.gz differ diff --git a/tests/common/satisfy/t4k/repositories.manifest b/tests/common/satisfy/t4k/repositories.manifest new file mode 100644 index 0000000..5b70556 --- /dev/null +++ b/tests/common/satisfy/t4k/repositories.manifest @@ -0,0 +1 @@ +: 1 diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript index b982734..443ce5f 100644 --- a/tests/pkg-build.testscript +++ b/tests/pkg-build.testscript @@ -138,6 +138,28 @@ # | |-- libbaz-2.1.0.tar.gz # | `-- repositories.manifest # | +# |-- t4k +# | |-- libbar-1.0.0.tar.gz -> libfoo == 1.0.0 +# | |-- libbaz-1.0.0.tar.gz -> libfox +# | |-- libfoo-1.0.0.tar.gz -> libfix == 1.0.0 +# | |-- libfoo-2.0.0.tar.gz -> libfix == 2.0.0 +# | |-- libfox-1.0.0.tar.gz -> libfux == 1.0.0 +# | |-- libfox-1.2.0.tar.gz -> libfux == 1.0.0, libfex >= 2.0.0 +# | |-- libfox-2.0.0.tar.gz -> libfux == 2.0.0 +# | |-- libfix-1.0.0.tar.gz -> libfax == 1.0.0 +# | |-- libfix-2.0.0.tar.gz -> libfax == 2.0.0 +# | |-- libfux-1.0.0.tar.gz -> libfaz == 1.0.0, libfex == 1.0.0 +# | |-- libfux-2.0.0.tar.gz -> libfaz == 2.0.0, libfex == 2.0.0 +# | |-- libfex-1.0.0.tar.gz -> libfaz == 1.0.0 +# | |-- libfex-2.0.0.tar.gz -> libfaz == 2.0.0 +# | |-- libfax-1.0.0.tar.gz -> libfuz == 1.0.0 +# | |-- libfax-2.0.0.tar.gz -> libfuz == 2.0.0 +# | |-- libfaz-1.0.0.tar.gz -> libfuz == 1.0.0 +# | |-- libfaz-2.0.0.tar.gz -> libfuz == 2.0.0 +# | |-- libfuz-1.0.0.tar.gz +# | |-- libfuz-2.0.0.tar.gz +# | `-- repositories.manifest +# | # |-- t5 # | |-- libbar-1.2.0.tar.gz # | |-- libbox-1.2.0.tar.gz @@ -521,6 +543,7 @@ posix = ($cxx.target.class != 'windows') cp -r $src/t4f $out/t4f && $rep_create $out/t4f &$out/t4f/packages.manifest cp -r $src/t4i $out/t4i && $rep_create $out/t4i &$out/t4i/packages.manifest cp -r $src/t4j $out/t4j && $rep_create $out/t4j &$out/t4j/packages.manifest + cp -r $src/t4k $out/t4k && $rep_create $out/t4k &$out/t4k/packages.manifest cp -r $src/t5 $out/t5 && $rep_create $out/t5 &$out/t5/packages.manifest cp -r $src/t6 $out/t6 && $rep_create $out/t6 &$out/t6/packages.manifest cp -r $src/t7a $out/t7a && $rep_create $out/t7a &$out/t7a/packages.manifest @@ -2203,22 +2226,65 @@ test.arguments += --sys-no-query # Picks up the latest libbaz (2.0.0) as a prerequisite for foo, which # leads to the conflict between libbaz/2.0.0 and libbox/1.0.0 about # prerequisite libbar because of the incompatible version constraints. + # This get automatically resolved by the unsatisfied constraints + # resolution machinery. # - $* foo 2>>EOE != 0; - error: unable to satisfy constraints on package libbar - info: libbaz/2.0.0 depends on (libbar ^2.0.0) - info: libbox/1.0.0 depends on (libbar ^1.0.0) - info: available libbar/2.0.0 - info: available libbar/1.0.0 - info: while satisfying libbox/1.0.0 - info: while satisfying foo/1.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + $* foo --plan '' --verbose 5 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build: add libbaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/2.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build: postpone failure for dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: collect_build: pick libbar/2.0.0 over libbar/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libbox/1.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libbaz/2.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version libbaz/2.0.0 with 1.0.0 by adding package spec '?libbaz == 1.0.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/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 libbaz/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 libbaz/1.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + new libbar/1.0.0 (required by libbaz, libbox) + new libbaz/1.0.0 (required by foo) + new libbox/1.0.0 (required by foo) + new foo/1.0.0 + trace: execute_plan: simulate: no + %.* EOE - $* foo ?libbaz/1.0.0 2>!; $pkg_status -r >>EOO; !foo configured 1.0.0 - libbaz configured !1.0.0 available 2.0.0 + libbaz configured 1.0.0 available 2.0.0 libbar configured 1.0.0 available 2.0.0 libbox configured 1.0.0 libbar configured 1.0.0 available 2.0.0 @@ -2271,20 +2337,49 @@ test.arguments += --sys-no-query libbar configured 1.0.0 available 2.0.0 EOO - # Unable to satisfy the dependent libbox with an upgraded (due to - # libbaz 2.0.0) prerequisite libbar/2.0.0. + # Initially unable to satisfy the dependent libbox with an upgraded + # (due to libbaz 2.0.0) prerequisite libbar/2.0.0. But this get + # automatically resolved by the unsatisfied constraints resolution + # machinery. # - $* ?libbaz 2>>EOE != 0; - error: unable to upgrade package libbar/1.0.0 to 2.0.0 - info: because configured package libbox/1.0.0 depends on (libbar ^1.0.0) - info: package libbar/2.0.0 required by - libbaz/2.0.0 (libbar ^2.0.0) - info: re-run with -v for additional dependency information - info: consider re-trying with --upgrade|-u potentially combined with --recursive|-r - info: or explicitly request up/downgrade of package libbox - info: or explicitly specify package libbar version to manually satisfy these constraints + $* ?libbaz --plan '' --verbose 5 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbaz/1.0.0: update to libbaz/2.0.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + info: package libbaz dependency on (libbar ^2.0.0) is forcing upgrade of libbar/1.0.0 to 2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: skip being built existing dependent libbaz of dependency libbar + trace: collect_build_prerequisites: skip unsatisfied existing dependent libbox of dependency libbar/2.0.0 due to constraint (libbar ^1.0.0) + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_dependents: postpone failure for existing dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfiable dependent libbaz/2.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfiable dependent version libbaz/2.0.0 with 1.0.0 by adding constraint '?libbaz' -> '?libbaz == 1.0.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: simulate: no + %.* EOE + $pkg_status -r >>EOO; + !foo configured 1.0.0 + libbaz configured 1.0.0 available 2.0.0 + libbar configured 1.0.0 available 2.0.0 + libbox configured 1.0.0 + libbar configured 1.0.0 available 2.0.0 + EOO + $pkg_drop foo } } @@ -2298,24 +2393,109 @@ test.arguments += --sys-no-query $clone_root_cfg; $rep_add ../../1/t9-3 && $rep_fetch; - # Similar to the repository state 2, picks up the latest libbaz (2.0.0) - # as a prerequisite for foo, which leads to the conflict. + # Similar to the repository state 2, picks up the latest libbaz + # (2.0.0) as a prerequisite for foo, which leads to the conflict, + # which is resolved automatically. # - $* foo 2>>EOE != 0; - error: unable to satisfy constraints on package libbar - info: libbaz/2.0.0 depends on (libbar ^2.0.0) - info: libbox/1.1.0 depends on (libbar ^1.0.0) - info: available libbar/2.0.0 - info: available libbar/1.0.0 - info: while satisfying libbox/1.1.0 - info: while satisfying foo/1.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + $* foo --plan '' --verbose 5 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build: add libbaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/2.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_build: add libbox/1.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.1.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.1.0 + trace: collect_build: postpone failure for dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: collect_build: pick libbar/2.0.0 over libbar/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbox/1.1.0 + trace: collect_build_prerequisites: end libbox/1.1.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libbox/1.1.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version libbox/1.1.0 with 1.0.0 by adding package spec '?libbox == 1.0.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build: add libbaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/2.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build: postpone failure for dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: collect_build: pick libbar/2.0.0 over libbar/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libbox/1.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version libbox/1.0.0 is denied since it is specified on command line as '?libbox == 1.0.0' + trace: try_replace_dependent: try to replace conflicting dependent libbaz/2.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version libbaz/2.0.0 with 1.0.0 by adding package spec '?libbaz == 1.0.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/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 libbaz/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 libbaz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: start command line adjustments refinement cycle by rolling back first adjustment ('?libbox == 1.0.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/1.0.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbaz/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 libbaz/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 libbaz/1.0.0 + trace: collect_build: add libbox/1.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/1.1.0 of dependent foo/1.0.0 + trace: collect_build_prerequisites: begin libbox/1.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent libbox/1.1.0 + trace: collect_build_prerequisites: end libbox/1.1.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: command line adjustment '?libbox == 1.0.0' is redundant, dropping it + new libbar/1.0.0 (required by libbaz, libbox) + new libbaz/1.0.0 (required by foo) + new libbox/1.1.0 (required by foo) + new foo/1.0.0 + trace: execute_plan: simulate: no + %.* EOE - $* foo ?libbaz/1.0.0 2>!; $pkg_status -r >>EOO; !foo configured 1.0.0 - libbaz configured !1.0.0 available 2.0.0 + libbaz configured 1.0.0 available 2.0.0 libbar configured 1.0.0 available 2.0.0 libbox configured 1.1.0 libbar configured 1.0.0 available 2.0.0 @@ -2368,34 +2548,146 @@ test.arguments += --sys-no-query libbar configured 1.0.0 available 2.0.0 EOO - # Unable to satisfy the dependent libbox with an upgraded (due to - # libbaz 2.0.0) prerequisite libbar/2.0.0. + test.arguments += --plan '' --verbose 5; + + # Initially, unable to satisfy the dependent libbox with an upgraded + # (due to libbaz 2.0.0) prerequisite libbar/2.0.0. But this get + # automatically resolved by the unsatisfied constraints resolution + # machinery. # - $* foo ?libbaz 2>>EOE != 0; - error: unable to upgrade package libbar/1.0.0 to 2.0.0 - info: because configured package libbox/1.0.0 depends on (libbar ^1.0.0) - info: package libbar/2.0.0 required by - libbaz/2.0.0 (libbar ^2.0.0) - info: re-run with -v for additional dependency information - info: consider re-trying with --upgrade|-u potentially combined with --recursive|-r - info: or explicitly request up/downgrade of package libbox - info: or explicitly specify package libbar version to manually satisfy these constraints + $* foo ?libbaz 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbaz/1.0.0: update to libbaz/2.0.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + info: package libbaz dependency on (libbar ^2.0.0) is forcing upgrade of libbar/1.0.0 to 2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: skip being built existing dependent libbaz of dependency libbar + trace: collect_build_prerequisites: skip unsatisfied existing dependent libbox of dependency libbar/2.0.0 due to constraint (libbar ^1.0.0) + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_dependents: postpone failure for existing dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfiable dependent libbaz/2.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfiable dependent version libbaz/2.0.0 with 1.0.0 by adding constraint '?libbaz' -> '?libbaz == 1.0.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + update foo/1.0.0 + trace: execute_plan: simulate: no + %.* EOE - # libbar/2.0.0 is still unsatisfactory as a prerequisite for libbox, - # even after libbox upgrade is requested on the command line. + $pkg_status -r >>EOO; + !foo configured 1.0.0 + libbaz configured 1.0.0 available 2.0.0 + libbar configured 1.0.0 available 2.0.0 + libbox configured 1.0.0 available 1.1.0 + libbar configured 1.0.0 available 2.0.0 + EOO + + # libbar/2.0.0 is still unsatisfactory, initially, as a prerequisite + # for libbox, even after libbox upgrade is requested on the command + # line. This get automatically resolved by the unsatisfied constraints + # resolution machinery. # - $* foo ?libbaz ?libbox 2>>EOE != 0; - error: unable to satisfy constraints on package libbar - info: libbaz/2.0.0 depends on (libbar ^2.0.0) - info: libbox/1.1.0 depends on (libbar ^1.0.0) - info: available libbar/2.0.0 - info: available libbar/1.0.0 - info: while satisfying libbox/1.1.0 - info: explicitly specify libbar version to manually satisfy both constraints + $* foo ?libbaz ?libbox 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbaz/1.0.0: update to libbaz/2.0.0 + trace: evaluate_dependency: libbox/1.0.0: update to libbox/1.1.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + info: package libbaz dependency on (libbar ^2.0.0) is forcing upgrade of libbar/1.0.0 to 2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: skip being built existing dependent libbaz of dependency libbar + trace: collect_build_prerequisites: skip unsatisfied existing dependent libbox of dependency libbar/2.0.0 due to constraint (libbar ^1.0.0) + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbox/1.1.0 + trace: collect_build: postpone failure for dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: collect_build: pick libbar/2.0.0 over libbar/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbox/1.1.0 + trace: collect_build_prerequisites: end libbox/1.1.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libbox/1.1.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version libbox/1.1.0 with 1.0.0 by adding constraint '?libbox' -> '?libbox == 1.0.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbaz/1.0.0: update to libbaz/2.0.0 + %.* + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbaz/2.0.0 + trace: collect_build: add libbar/2.0.0 + info: package libbaz dependency on (libbar ^2.0.0) is forcing upgrade of libbar/1.0.0 to 2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.0.0 of dependent libbaz/2.0.0 + trace: collect_build_prerequisites: skip being built existing dependent libbaz of dependency libbar + trace: collect_build_prerequisites: skip unsatisfied existing dependent libbox of dependency libbar/2.0.0 due to constraint (libbar ^1.0.0) + trace: collect_build_prerequisites: begin libbar/2.0.0 + trace: collect_build_prerequisites: end libbar/2.0.0 + trace: collect_build_prerequisites: end libbaz/2.0.0 + trace: collect_dependents: postpone failure for existing dependent libbox unsatisfied with dependency libbar/2.0.0 (^1.0.0) + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfiable dependent libbaz/2.0.0 of dependency libbar/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfiable dependent version libbaz/2.0.0 with 1.0.0 by adding constraint '?libbaz' -> '?libbaz == 1.0.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: start command line adjustments refinement cycle by rolling back first adjustment ('?libbox' -> '?libbox == 1.0.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: skip configured foo/1.0.0 + trace: execute_plan: simulate: yes + trace: evaluate_dependency: libbaz/1.0.0: unchanged + trace: evaluate_dependency: libbox/1.0.0: update to libbox/1.1.0 + trace: pkg_build: refine package collection/plan execution + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: end reached + trace: collect_build_prerequisites: begin libbox/1.1.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.0.0 of dependent libbox/1.1.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: end libbox/1.1.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: command line adjustment '?libbox' -> '?libbox == 1.0.0' is redundant, dropping it + upgrade libbox/1.1.0 + reconfigure/update foo/1.0.0 + trace: execute_plan: simulate: no + %.* EOE - $* ?libbox 2>!; $pkg_status -r >>EOO; !foo configured 1.0.0 libbaz configured 1.0.0 available 2.0.0 @@ -2946,7 +3238,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libbiz/0.0.2 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbaz/0.1.0 with 0.0.3 by adding package spec '?libbaz == 0.0.3' to command line + trace: pkg_build: try to replace unsatisfactory dependency libbaz/0.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbaz/0.1.0 with 0.0.3 by adding package spec '?libbaz == 0.0.3' to command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfix/0.0.3 trace: collect_build: add libbiz/0.0.2 @@ -3015,40 +3308,71 @@ test.arguments += --sys-no-query : Test resolving a conflict when libbox and libfox have selected such : versions of their dependency libfoo, that do not satisfy each other : constraints. Note that these constraints are incompatible, so we - : resolve the conflict explicitly specifying ?libfox/0.0.1 on the - : command line, to replace one of the conflicting dependents. + : automatically resolve the conflict by implicitly specifying + : ?libfox/0.0.1 on the command line, to replace one of the conflicting + : dependents. : { $clone_root_cfg; $rep_fetch $rep/t0d; - $* libbiz 2>>EOE != 0; - error: unable to satisfy constraints on package libfoo - info: libbox/0.0.2 depends on (libfoo == 1.0.0) - info: libfox/0.0.2 depends on (libfoo == 0.0.1) - info: available libfoo/1.0.0 - info: available libfoo/0.0.1 - info: while satisfying libbox/0.0.2 - info: while satisfying libbiz/0.0.1 - info: explicitly specify libfoo version to manually satisfy both constraints - EOE - - $* libbiz ?libfox/0.0.1 2>>EOE; - fetched libfox/0.0.1 - unpacked libfox/0.0.1 - fetched libfoo/1.0.0 - unpacked libfoo/1.0.0 - fetched libbox/0.0.2 - unpacked libbox/0.0.2 - fetched libbiz/0.0.1 - unpacked libbiz/0.0.1 - configured libfox/0.0.1 - configured libfoo/1.0.0 - configured libbox/0.0.2 - configured libbiz/0.0.1 + $* libbiz --plan "" --verbose 5 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbiz/0.0.1 + trace: collect_build_prerequisites: begin libbiz/0.0.1 + trace: collect_build: add libfox/0.0.2 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/0.0.2 of dependent libbiz/0.0.1 + trace: collect_build_prerequisites: begin libfox/0.0.2 + trace: collect_build: add libfoo/0.0.1 + trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/0.0.1 of dependent libfox/0.0.2 + trace: collect_build_prerequisites: begin libfoo/0.0.1 + trace: collect_build: add libfix/0.0.1 + trace: collect_build_prerequisites: no cfg-clause for dependency libfix/0.0.1 of dependent libfoo/0.0.1 + trace: collect_build_prerequisites: begin libfix/0.0.1 + trace: collect_build_prerequisites: end libfix/0.0.1 + trace: collect_build_prerequisites: end libfoo/0.0.1 + trace: collect_build_prerequisites: end libfox/0.0.2 + trace: collect_build: add libbox/0.0.2 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/0.0.2 of dependent libbiz/0.0.1 + trace: collect_build_prerequisites: begin libbox/0.0.2 + trace: collect_build: postpone failure for dependent libbox unsatisfied with dependency libfoo/0.0.1 (== 1.0.0) + trace: collect_build: pick libfoo/0.0.1 over libfoo/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/0.0.1 of dependent libbox/0.0.2 + trace: collect_build_prerequisites: end libbox/0.0.2 + trace: collect_build_prerequisites: end libbiz/0.0.1 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libfoo/0.0.1 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libbox/0.0.2 of dependency libfoo/0.0.1 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libfox/0.0.2 of dependency libfoo/0.0.1 with some other version + trace: try_replace_dependency: replace conflicting dependent version libfox/0.0.2 with 0.0.1 by adding package spec '?libfox == 0.0.1' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbiz/0.0.1 + trace: collect_build_prerequisites: begin libbiz/0.0.1 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/0.0.1 of dependent libbiz/0.0.1 + trace: collect_build_prerequisites: begin libfox/0.0.1 + trace: collect_build_prerequisites: end libfox/0.0.1 + trace: collect_build: add libbox/0.0.2 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/0.0.2 of dependent libbiz/0.0.1 + trace: collect_build_prerequisites: begin libbox/0.0.2 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/1.0.0 of dependent libbox/0.0.2 + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: end libbox/0.0.2 + trace: collect_build_prerequisites: end libbiz/0.0.1 + trace: execute_plan: simulate: yes + %.* + new libfox/0.0.1 (required by libbiz) + new libfoo/1.0.0 (required by libbox) + new libbox/0.0.2 (required by libbiz) + new libbiz/0.0.1 + trace: execute_plan: simulate: no + %.* EOE - $pkg_status libfox >'libfox configured !0.0.1 available 0.0.2'; + $pkg_status libfox >'libfox configured 0.0.1 available 0.0.2'; $pkg_drop libbiz } @@ -4070,7 +4394,7 @@ test.arguments += --sys-no-query { $clone_cfg; - $* libbaz libfoo libfox --verbose 5 2>>~%EOE% != 0 + $* libbaz libfoo libfox --plan "" --verbose 5 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbaz/2.1.0 @@ -4135,16 +4459,68 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfox/3.0.0 trace: execute_plan: simulate: yes %.* - error: unable to satisfy constraints on package libbar - info: libbaz/1.2.0 depends on (libbar == 1.2.0) - libfox/3.0.0 requires (libbaz == 1.2.0) - info: libfox/3.0.0 depends on (libbar == 0.1.0) - info: available libbar/1.2.0 - info: available libbar/0.1.0 - info: while satisfying libfox/3.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + trace: pkg_build: try to replace unsatisfactory dependency libbar/1.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfox/3.0.0 of dependency libbar/1.2.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version libfox/3.0.0 with 2.1.0 by adding constraint 'libfox' -> 'libfox == 2.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbaz/2.1.0 + trace: collect_build: add libfoo/3.0.0 + trace: collect_build: add libfox/2.1.0 + trace: collect_build_prerequisites: begin libbaz/2.1.0 + trace: collect_build_prerequisites: end libbaz/2.1.0 + trace: collect_build_prerequisites: begin libfoo/3.0.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/3.0.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libfoo/3.0.0 + trace: collect_build_prerequisites: begin libfox/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/2.1.0 + trace: collect_build: pick libbaz/1.2.0 over libbaz/2.1.0 + trace: collect_build: libbaz/2.1.0 package version needs to be replaced with libbaz/1.2.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: apply version replacement for libbaz/2.1.0 + trace: collect_build: replacement: libbaz/1.2.0 + trace: collect_build: add libbaz/1.2.0 + trace: collect_build: add libfoo/3.0.0 + trace: collect_build: add libfox/2.1.0 + trace: collect_build_prerequisites: begin libbaz/1.2.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libbaz/1.2.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libbaz/1.2.0 + trace: collect_build_prerequisites: begin libfoo/3.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/3.0.0 + trace: collect_build_prerequisites: end libfoo/3.0.0 + trace: collect_build_prerequisites: begin libfox/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbaz/1.2.0 of dependent libfox/2.1.0 + trace: collect_build_prerequisites: end libfox/2.1.0 + trace: execute_plan: simulate: yes + %.* + new libbar/1.2.0 (required by libbaz, libfoo, libfox) + new libbaz/1.2.0 + new libfoo/3.0.0 + new libfox/2.1.0 + trace: execute_plan: simulate: no %.* EOE + + $pkg_status -ar >>EOO; + libbar configured 1.2.0 + !libbaz configured 1.2.0 available 2.1.0 + libbar configured 1.2.0 + !libfoo configured 3.0.0 + libbar configured 1.2.0 + !libfox configured 2.1.0 available 3.0.0 + libbar configured 1.2.0 + !libbaz configured 1.2.0 available 2.1.0 + libbar configured 1.2.0 + EOO + + $pkg_drop libbaz libfoo libfox } : collect-drop @@ -4239,14 +4615,15 @@ test.arguments += --sys-no-query : basics : - : This test demonstrates a case when the dependency resolution machinery - : fails to resolve unsatisfied dependency constraints by replacing an - : unsatisfied dependent version with a satisfied one. + : This test demonstrates a case when the dependency resolution + : machinery resolves unsatisfied dependency constraints by adding the + : package spec to the command line for an unsatisfied dependent + : version. : { $clone_cfg; - $* libfoo libfix 2>>~%EOE% != 0; + $* libfoo libfix 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfoo/2.0.0 @@ -4268,44 +4645,43 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfix/1.0.0 trace: execute_plan: simulate: yes %.* - error: unable to satisfy constraints on package libbar - info: libfox/2.0.0 depends on (libbar >= 2.0.0) - info: libfoo/2.0.0 depends on (libbar == 1.2.0) - info: available libbar/2.1.0 - info: available libbar/1.2.0 - info: while satisfying libfox/2.0.0 - info: while satisfying libfix/1.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + trace: pkg_build: try to replace unsatisfactory dependency libbar/1.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfox/2.0.0 of dependency libbar/1.2.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version libfox/2.0.0 with 1.1.0 by adding package spec '?libfox == 1.1.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libfoo/2.0.0 + trace: collect_build: add libfix/1.0.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/2.0.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/1.1.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: pick libbar/1.2.0 over libbar/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: execute_plan: simulate: yes %.* - EOE - - $* libfoo libfix ?libfox/1.1.0 --verbose 1 2>>EOE; new libbar/1.2.0 (required by libfoo, libfox) new libfoo/2.0.0 new libfox/1.1.0 (required by libfix) new libfix/1.0.0 - fetched libbar/1.2.0 - unpacked libbar/1.2.0 - fetched libfoo/2.0.0 - unpacked libfoo/2.0.0 - fetched libfox/1.1.0 - unpacked libfox/1.1.0 - fetched libfix/1.0.0 - unpacked libfix/1.0.0 - configured libbar/1.2.0 - configured libfoo/2.0.0 - configured libfox/1.1.0 - configured libfix/1.0.0 + trace: execute_plan: simulate: no + %.* EOE $pkg_status -ar >>EOO; libbar configured 1.2.0 available 2.1.0 !libfoo configured 2.0.0 libbar configured 1.2.0 available 2.1.0 - libfox configured !1.1.0 available 2.0.0 + libfox configured 1.1.0 available 2.0.0 libbar configured 1.2.0 available 2.1.0 !libfix configured 1.0.0 - libfox configured !1.1.0 available 2.0.0 + libfox configured 1.1.0 available 2.0.0 libbar configured 1.2.0 available 2.1.0 EOO @@ -4315,12 +4691,13 @@ test.arguments += --sys-no-query : reorder : : Similar to the above, but the unsatisfied dependent which needs to be - : replaced differs from the one added to the unsatisfied dependents list. + : replaced differs from the one added to the unsatisfied dependents + : list. : { $clone_cfg; - $* libfix libfoo 2>>~%EOE% != 0; + $* libfix libfoo 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfix/1.0.0 @@ -4350,41 +4727,67 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfoo/2.0.0 trace: execute_plan: simulate: yes %.* - error: unable to satisfy constraints on package libbar - info: libfox/2.0.0 depends on (libbar >= 2.0.0) - info: libfoo/2.0.0 depends on (libbar == 1.2.0) - info: available libbar/2.1.0 - info: available libbar/1.2.0 - info: while satisfying libfoo/2.0.0 - info: explicitly specify libbar version to manually satisfy both constraints - %.* - EOE - - $* libfix libfoo ?libfox/1.1.0 --verbose 1 2>>EOE; - new libbar/1.2.0 (required by libfoo, libfox) - new libfox/1.1.0 (required by libfix) - new libfix/1.0.0 - new libfoo/2.0.0 - fetched libbar/1.2.0 - unpacked libbar/1.2.0 - fetched libfox/1.1.0 - unpacked libfox/1.1.0 - fetched libfix/1.0.0 - unpacked libfix/1.0.0 - fetched libfoo/2.0.0 - unpacked libfoo/2.0.0 - configured libbar/1.2.0 - configured libfox/1.1.0 - configured libfix/1.0.0 - configured libfoo/2.0.0 - EOE - - $pkg_status -ar >>EOO; - libbar configured 1.2.0 available 2.1.0 - libfox configured !1.1.0 available 2.0.0 - libbar configured 1.2.0 available 2.1.0 - !libfix configured 1.0.0 - libfox configured !1.1.0 available 2.0.0 + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.1.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfoo/2.0.0 of dependency libbar/2.1.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libfox/2.0.0 of dependency libbar/2.1.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version libfox/2.0.0 with 1.1.0 by adding package spec '?libfox == 1.1.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libfix/1.0.0 + trace: collect_build: add libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/1.1.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: add libbar/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.1.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: begin libbar/2.1.0 + trace: collect_build: add libbox/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/2.0.0 of dependent libbar/2.1.0 + trace: collect_build_prerequisites: begin libbox/2.0.0 + trace: collect_build: add libbax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbax/1.0.0 of dependent libbox/2.0.0 + trace: collect_build_prerequisites: begin libbax/1.0.0 + trace: collect_build_prerequisites: end libbax/1.0.0 + trace: collect_build_prerequisites: end libbox/2.0.0 + trace: collect_build_prerequisites: end libbar/2.1.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build: pick libbar/1.2.0 over libbar/2.1.0 + trace: collect_build: libbar/2.1.0 package version needs to be replaced with libbar/1.2.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 libfix/1.0.0 + trace: collect_build: add libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/1.1.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: apply version replacement for libbar/2.1.0 + trace: collect_build: replacement: libbar/1.2.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/2.0.0 + trace: collect_build_prerequisites: end libfoo/2.0.0 + trace: execute_plan: simulate: yes + %.* + new libbar/1.2.0 (required by libfoo, libfox) + new libfox/1.1.0 (required by libfix) + new libfix/1.0.0 + new libfoo/2.0.0 + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_status -ar >>EOO; + libbar configured 1.2.0 available 2.1.0 + libfox configured 1.1.0 available 2.0.0 + libbar configured 1.2.0 available 2.1.0 + !libfix configured 1.0.0 + libfox configured 1.1.0 available 2.0.0 libbar configured 1.2.0 available 2.1.0 !libfoo configured 2.0.0 libbar configured 1.2.0 available 2.1.0 @@ -4395,13 +4798,13 @@ test.arguments += --sys-no-query : to-hold : - : Similar to the replace-dependent test, but the unsatisfied dependent - : is being built to hold rather than as a dependency. + : Similar to the basics test, but the unsatisfied dependent is being + : built to hold rather than as a dependency. : { $clone_cfg; - $* libfoo libfox 2>>~%EOE% != 0; + $* libfoo libfox 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfoo/2.0.0 @@ -4419,36 +4822,35 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfox/2.0.0 trace: execute_plan: simulate: yes %.* - error: unable to satisfy constraints on package libbar - info: libfox/2.0.0 depends on (libbar >= 2.0.0) - info: libfoo/2.0.0 depends on (libbar == 1.2.0) - info: available libbar/2.1.0 - info: available libbar/1.2.0 - info: while satisfying libfox/2.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + trace: try_replace_dependent: try to replace unsatisfied dependent libfox/2.0.0 of dependency libbar/1.2.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version libfox/2.0.0 with 1.1.0 by adding constraint 'libfox' -> 'libfox == 1.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libfoo/2.0.0 + trace: collect_build: add libfox/1.1.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/2.0.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: pick libbar/1.2.0 over libbar/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: execute_plan: simulate: yes %.* - EOE - - $* libfoo libfox/1.1.0 --verbose 1 2>>EOE; new libbar/1.2.0 (required by libfoo, libfox) new libfoo/2.0.0 new libfox/1.1.0 - fetched libbar/1.2.0 - unpacked libbar/1.2.0 - fetched libfoo/2.0.0 - unpacked libfoo/2.0.0 - fetched libfox/1.1.0 - unpacked libfox/1.1.0 - configured libbar/1.2.0 - configured libfoo/2.0.0 - configured libfox/1.1.0 + trace: execute_plan: simulate: no + %.* EOE $pkg_status -ar >>EOO; libbar configured 1.2.0 available 2.1.0 !libfoo configured 2.0.0 libbar configured 1.2.0 available 2.1.0 - !libfox configured !1.1.0 available 2.0.0 + !libfox configured 1.1.0 available 2.0.0 libbar configured 1.2.0 available 2.1.0 EOO @@ -4458,12 +4860,13 @@ test.arguments += --sys-no-query : to-hold-reorder : : Similar to the above, but the unsatisfied dependent which needs to be - : replaced differs from the one added to the unsatisfied dependents list. + : replaced differs from the one added to the unsatisfied dependents + : list. : { $clone_cfg; - $* libfox libfoo 2>>~%EOE% != 0; + $* libfox libfoo 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfox/2.0.0 @@ -4489,34 +4892,57 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfoo/2.0.0 trace: execute_plan: simulate: yes %.* - error: unable to satisfy constraints on package libbar - info: libfox/2.0.0 depends on (libbar >= 2.0.0) - info: libfoo/2.0.0 depends on (libbar == 1.2.0) - info: available libbar/2.1.0 - info: available libbar/1.2.0 - info: while satisfying libfoo/2.0.0 - info: explicitly specify libbar version to manually satisfy both constraints + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.1.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfoo/2.0.0 of dependency libbar/2.1.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libfox/2.0.0 of dependency libbar/2.1.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version libfox/2.0.0 with 1.1.0 by adding constraint 'libfox' -> 'libfox == 1.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libfox/1.1.0 + trace: collect_build: add libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: add libbar/2.1.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/2.1.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: begin libbar/2.1.0 + trace: collect_build: add libbox/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbox/2.0.0 of dependent libbar/2.1.0 + trace: collect_build_prerequisites: begin libbox/2.0.0 + trace: collect_build: add libbax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbax/1.0.0 of dependent libbox/2.0.0 + trace: collect_build_prerequisites: begin libbax/1.0.0 + trace: collect_build_prerequisites: end libbax/1.0.0 + trace: collect_build_prerequisites: end libbox/2.0.0 + trace: collect_build_prerequisites: end libbar/2.1.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build: pick libbar/1.2.0 over libbar/2.1.0 + trace: collect_build: libbar/2.1.0 package version needs to be replaced with libbar/1.2.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 libfox/1.1.0 + trace: collect_build: add libfoo/2.0.0 + trace: collect_build_prerequisites: begin libfox/1.1.0 + trace: collect_build: apply version replacement for libbar/2.1.0 + trace: collect_build: replacement: libbar/1.2.0 + trace: collect_build: add libbar/1.2.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfox/1.1.0 + trace: collect_build_prerequisites: begin libbar/1.2.0 + trace: collect_build_prerequisites: end libbar/1.2.0 + trace: collect_build_prerequisites: end libfox/1.1.0 + trace: collect_build_prerequisites: begin libfoo/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libbar/1.2.0 of dependent libfoo/2.0.0 + trace: collect_build_prerequisites: end libfoo/2.0.0 + trace: execute_plan: simulate: yes %.* - EOE - - $* libfox/1.1.0 libfoo --verbose 1 2>>EOE; new libbar/1.2.0 (required by libfoo, libfox) new libfox/1.1.0 new libfoo/2.0.0 - fetched libbar/1.2.0 - unpacked libbar/1.2.0 - fetched libfox/1.1.0 - unpacked libfox/1.1.0 - fetched libfoo/2.0.0 - unpacked libfoo/2.0.0 - configured libbar/1.2.0 - configured libfox/1.1.0 - configured libfoo/2.0.0 + trace: execute_plan: simulate: no + %.* EOE $pkg_status -ar >>EOO; libbar configured 1.2.0 available 2.1.0 - !libfox configured !1.1.0 available 2.0.0 + !libfox configured 1.1.0 available 2.0.0 libbar configured 1.2.0 available 2.1.0 !libfoo configured 2.0.0 libbar configured 1.2.0 available 2.1.0 @@ -4527,12 +4953,14 @@ test.arguments += --sys-no-query : unsatisfied-dependent : - : This test demonstrates a case when the dependency resolution machinery - : fails to complete successfully as noop. + : This test demonstrates a case when the dependency resolution + : machinery resolves unsatisfied dependency constraints by + : enforcing noop. : - : Note that there is no version constraints are specified on the command - : line, the request is to upgrade all packages to the latest possible - : versions, and thus noop in this case would be an appropriate outcome. + : Note that there is no version constraints are specified on the + : command line, the request is to upgrade all packages to the latest + : possible versions, and thus noop in this case is an appropriate + : outcome. : { $clone_cfg; @@ -4550,7 +4978,7 @@ test.arguments += --sys-no-query libbax configured 1.0.0 available 2.0.0 EOO - $* --upgrade --recursive 2>>~%EOE% != 0; + $* --upgrade --recursive 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbox/2.0.0 @@ -4577,18 +5005,280 @@ test.arguments += --sys-no-query trace: collect_dependents: postpone failure for existing dependent libbox unsatisfied with dependency libbax/2.0.0 (== 1.0.0) trace: execute_plan: simulate: yes %.* - error: unable to upgrade package libbax/1.0.0 to 2.0.0 - info: because configured package libbox/2.0.0 depends on (libbax == 1.0.0) - info: package libbax/2.0.0 required by - libbix/2.0.0 (libbax == 2.0.0) - info: consider re-trying with --upgrade|-u potentially combined with --recursive|-r - info: or explicitly request up/downgrade of package libbox - info: or explicitly specify package libbax version to manually satisfy these constraints + trace: pkg_build: try to replace unsatisfactory dependency libbax/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfiable dependent libbix/2.0.0 of dependency libbax/2.0.0 with some other version + trace: try_replace_dependency: replace unsatisfiable dependent version libbix/2.0.0 with 1.0.0 by adding package spec '?libbix == 1.0.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbox/2.0.0 + trace: collect_build: add libbux/1.0.0 + trace: collect_build_prerequisites: skip configured libbox/2.0.0 + trace: collect_build_prerequisites: skip configured libbux/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: simulate: no %.* EOE + $pkg_status -ar >>EOO; + libbax configured 1.0.0 available 2.0.0 + !libbox configured 2.0.0 + libbax configured 1.0.0 available 2.0.0 + libbix configured !1.0.0 available 2.0.0 + libbax configured 1.0.0 available 2.0.0 + !libbux configured 1.0.0 + libbix configured !1.0.0 available 2.0.0 + libbax configured 1.0.0 available 2.0.0 + EOO + $pkg_drop libbox libbux } + + : indirect + : + : Test replacement of indirect dependents of an unsatisfactory + : dependency. + : + { + $clone_root_cfg; + $rep_add $rep/t4k && $rep_fetch; + + $* libbaz libbar 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbaz/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: begin libbaz/1.0.0 + trace: collect_build: add libfox/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/2.0.0 of dependent libbaz/1.0.0 + trace: collect_build_prerequisites: begin libfox/2.0.0 + trace: collect_build: add libfux/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfux/2.0.0 of dependent libfox/2.0.0 + trace: collect_build_prerequisites: begin libfux/2.0.0 + trace: collect_build: add libfaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/2.0.0 of dependent libfux/2.0.0 + trace: collect_build_prerequisites: begin libfaz/2.0.0 + trace: collect_build: add libfuz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/2.0.0 of dependent libfaz/2.0.0 + trace: collect_build_prerequisites: begin libfuz/2.0.0 + trace: collect_build_prerequisites: end libfuz/2.0.0 + trace: collect_build_prerequisites: end libfaz/2.0.0 + trace: collect_build: add libfex/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfex/2.0.0 of dependent libfux/2.0.0 + trace: collect_build_prerequisites: begin libfex/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/2.0.0 of dependent libfex/2.0.0 + trace: collect_build_prerequisites: end libfex/2.0.0 + trace: collect_build_prerequisites: end libfux/2.0.0 + trace: collect_build_prerequisites: end libfox/2.0.0 + trace: collect_build_prerequisites: end libbaz/1.0.0 + trace: collect_build_prerequisites: begin libbar/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 libbar/1.0.0 + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build: add libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfix/1.0.0 of dependent libfoo/1.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build: add libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfax/1.0.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfax/1.0.0 + trace: collect_build: postpone failure for dependent libfax unsatisfied with dependency libfuz/2.0.0 (== 1.0.0) + trace: collect_build: pick libfuz/2.0.0 over libfuz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/2.0.0 of dependent libfax/1.0.0 + trace: collect_build_prerequisites: end libfax/1.0.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: end libbar/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfax/1.0.0 of dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libfaz/2.0.0 of dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfix/1.0.0 of dependency libfax/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfoo/1.0.0 of dependency libfix/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libbar/1.0.0 of dependency libfoo/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfux/2.0.0 of dependency libfaz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfex/2.0.0 of dependency libfaz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfox/2.0.0 of dependency libfux/2.0.0 with some other version + trace: try_replace_dependency: replace constraining dependent version libfox/2.0.0 with 1.2.0 by adding package spec '?libfox == 1.2.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbaz/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: begin libbaz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/1.2.0 of dependent libbaz/1.0.0 + trace: collect_build_prerequisites: begin libfox/1.2.0 + trace: collect_build: add libfux/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfux/1.0.0 of dependent libfox/1.2.0 + trace: collect_build_prerequisites: begin libfux/1.0.0 + trace: collect_build: add libfaz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/1.0.0 of dependent libfux/1.0.0 + trace: collect_build_prerequisites: begin libfaz/1.0.0 + trace: collect_build: add libfuz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/1.0.0 of dependent libfaz/1.0.0 + trace: collect_build_prerequisites: begin libfuz/1.0.0 + trace: collect_build_prerequisites: end libfuz/1.0.0 + trace: collect_build_prerequisites: end libfaz/1.0.0 + trace: collect_build: add libfex/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfex/1.0.0 of dependent libfux/1.0.0 + trace: collect_build_prerequisites: begin libfex/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/1.0.0 of dependent libfex/1.0.0 + trace: collect_build_prerequisites: end libfex/1.0.0 + trace: collect_build_prerequisites: end libfux/1.0.0 + trace: collect_build: postpone failure for dependent libfox unsatisfied with dependency libfex/1.0.0 (>= 2.0.0) + trace: collect_build: pick libfex/1.0.0 over libfex/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfex/1.0.0 of dependent libfox/1.2.0 + trace: collect_build_prerequisites: end libfox/1.2.0 + trace: collect_build_prerequisites: end libbaz/1.0.0 + trace: collect_build_prerequisites: begin libbar/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 libbar/1.0.0 + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build: add libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfix/1.0.0 of dependent libfoo/1.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build: add libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfax/1.0.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/1.0.0 of dependent libfax/1.0.0 + trace: collect_build_prerequisites: end libfax/1.0.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: end libbar/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libfex/1.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfox/1.2.0 of dependency libfex/1.0.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version libfox/1.2.0 is denied since it is specified on command line as '?libfox == 1.2.0' + trace: try_replace_dependent: try to replace conflicting dependent libfux/1.0.0 of dependency libfex/1.0.0 with some other version + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('?libfox == 1.2.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbaz/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: begin libbaz/1.0.0 + trace: collect_build: add libfox/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/2.0.0 of dependent libbaz/1.0.0 + trace: collect_build_prerequisites: begin libfox/2.0.0 + trace: collect_build: add libfux/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfux/2.0.0 of dependent libfox/2.0.0 + trace: collect_build_prerequisites: begin libfux/2.0.0 + trace: collect_build: add libfaz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/2.0.0 of dependent libfux/2.0.0 + trace: collect_build_prerequisites: begin libfaz/2.0.0 + trace: collect_build: add libfuz/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/2.0.0 of dependent libfaz/2.0.0 + trace: collect_build_prerequisites: begin libfuz/2.0.0 + trace: collect_build_prerequisites: end libfuz/2.0.0 + trace: collect_build_prerequisites: end libfaz/2.0.0 + trace: collect_build: add libfex/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfex/2.0.0 of dependent libfux/2.0.0 + trace: collect_build_prerequisites: begin libfex/2.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/2.0.0 of dependent libfex/2.0.0 + trace: collect_build_prerequisites: end libfex/2.0.0 + trace: collect_build_prerequisites: end libfux/2.0.0 + trace: collect_build_prerequisites: end libfox/2.0.0 + trace: collect_build_prerequisites: end libbaz/1.0.0 + trace: collect_build_prerequisites: begin libbar/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 libbar/1.0.0 + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build: add libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfix/1.0.0 of dependent libfoo/1.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build: add libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfax/1.0.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfax/1.0.0 + trace: collect_build: postpone failure for dependent libfax unsatisfied with dependency libfuz/2.0.0 (== 1.0.0) + trace: collect_build: pick libfuz/2.0.0 over libfuz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/2.0.0 of dependent libfax/1.0.0 + trace: collect_build_prerequisites: end libfax/1.0.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: end libbar/1.0.0 + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent libfax/1.0.0 of dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent libfaz/2.0.0 of dependency libfuz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfix/1.0.0 of dependency libfax/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfoo/1.0.0 of dependency libfix/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libbar/1.0.0 of dependency libfoo/1.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfux/2.0.0 of dependency libfaz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfex/2.0.0 of dependency libfaz/2.0.0 with some other version + trace: try_replace_dependent: try to replace constraining dependent libfox/2.0.0 of dependency libfux/2.0.0 with some other version + trace: try_replace_dependency: replacement libfox/1.2.0 tried earlier for same command line, skipping + trace: try_replace_dependency: replace constraining dependent version libfox/2.0.0 with 1.0.0 by adding package spec '?libfox == 1.0.0' to command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add libbaz/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: begin libbaz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfox/1.0.0 of dependent libbaz/1.0.0 + trace: collect_build_prerequisites: begin libfox/1.0.0 + trace: collect_build: add libfux/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfux/1.0.0 of dependent libfox/1.0.0 + trace: collect_build_prerequisites: begin libfux/1.0.0 + trace: collect_build: add libfaz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/1.0.0 of dependent libfux/1.0.0 + trace: collect_build_prerequisites: begin libfaz/1.0.0 + trace: collect_build: add libfuz/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/1.0.0 of dependent libfaz/1.0.0 + trace: collect_build_prerequisites: begin libfuz/1.0.0 + trace: collect_build_prerequisites: end libfuz/1.0.0 + trace: collect_build_prerequisites: end libfaz/1.0.0 + trace: collect_build: add libfex/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfex/1.0.0 of dependent libfux/1.0.0 + trace: collect_build_prerequisites: begin libfex/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfaz/1.0.0 of dependent libfex/1.0.0 + trace: collect_build_prerequisites: end libfex/1.0.0 + trace: collect_build_prerequisites: end libfux/1.0.0 + trace: collect_build_prerequisites: end libfox/1.0.0 + trace: collect_build_prerequisites: end libbaz/1.0.0 + trace: collect_build_prerequisites: begin libbar/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 libbar/1.0.0 + trace: collect_build_prerequisites: begin libfoo/1.0.0 + trace: collect_build: add libfix/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfix/1.0.0 of dependent libfoo/1.0.0 + trace: collect_build_prerequisites: begin libfix/1.0.0 + trace: collect_build: add libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfax/1.0.0 of dependent libfix/1.0.0 + trace: collect_build_prerequisites: begin libfax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency libfuz/1.0.0 of dependent libfax/1.0.0 + trace: collect_build_prerequisites: end libfax/1.0.0 + trace: collect_build_prerequisites: end libfix/1.0.0 + trace: collect_build_prerequisites: end libfoo/1.0.0 + trace: collect_build_prerequisites: end libbar/1.0.0 + trace: execute_plan: simulate: yes + %.* + new libfuz/1.0.0 (required by libfax, libfaz) + new libfaz/1.0.0 (required by libfex, libfux) + new libfex/1.0.0 (required by libfux) + new libfux/1.0.0 (required by libfox) + new libfox/1.0.0 (required by libbaz) + new libbaz/1.0.0 + new libfax/1.0.0 (required by libfix) + new libfix/1.0.0 (required by libfoo) + new libfoo/1.0.0 (required by libbar) + new libbar/1.0.0 + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_status -r libbaz libbar >>EOO; + !libbaz configured 1.0.0 + libfox configured 1.0.0 available 2.0.0 1.2.0 + libfux configured 1.0.0 available 2.0.0 + libfaz configured 1.0.0 available 2.0.0 + libfuz configured 1.0.0 available 2.0.0 + libfex configured 1.0.0 available 2.0.0 + libfaz configured 1.0.0 available 2.0.0 + libfuz configured 1.0.0 available 2.0.0 + !libbar configured 1.0.0 + libfoo configured 1.0.0 available 2.0.0 + libfix configured 1.0.0 available 2.0.0 + libfax configured 1.0.0 available 2.0.0 + libfuz configured 1.0.0 available 2.0.0 + EOO + + $pkg_drop libbaz libbar + } } : replace-dependency @@ -4599,9 +5289,10 @@ test.arguments += --sys-no-query : basics : - : This test demonstrates a case when the dependency resolution machinery - : resolves unsatisfied dependency constraints by adding the package spec - : to the command line for an unsatisfactory dependency version. + : This test demonstrates a case when the dependency resolution + : machinery resolves unsatisfied dependency constraints by adding the + : package spec to the command line for an unsatisfactory dependency + : version. : { $clone_cfg; @@ -4632,7 +5323,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libbaz/2.0.0 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/2.1.0 with 1.2.0 by adding package spec '?libbar == 1.2.0' to command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/2.1.0 with 1.2.0 by adding package spec '?libbar == 1.2.0' to command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfox/1.1.0 trace: collect_build: add libbaz/2.0.0 @@ -4688,7 +5380,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfox/1.1.0 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/0.1.0 with 1.2.0 by adding package spec '?libbar == 1.2.0' to command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/0.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/0.1.0 with 1.2.0 by adding package spec '?libbar == 1.2.0' to command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbaz/2.0.0 trace: collect_build: add libfox/1.1.0 @@ -4824,7 +5517,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libfox/1.1.0 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/0.1.0 with 1.2.0 by overwriting constraint '?libbar < 3.0.0' by '?libbar == 1.2.0' on command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/0.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/0.1.0 with 1.2.0 by overwriting constraint '?libbar < 3.0.0' -> '?libbar == 1.2.0' on command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbaz/2.0.0 trace: collect_build: add libfox/1.1.0 @@ -4901,7 +5595,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libbar/0.1.0 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/0.1.0 with 1.2.0 by overwriting spec 'libbar' by 'libbar == 1.2.0' on command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/0.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/0.1.0 with 1.2.0 by adding constraint 'libbar' -> 'libbar == 1.2.0' on command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbaz/2.0.0 trace: collect_build: add libfox/1.1.0 @@ -4975,7 +5670,8 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libbar/0.1.0 trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/0.1.0 with 1.2.0 by overwriting constraint 'libbar < 3.0.0' by 'libbar == 1.2.0' on command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/0.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/0.1.0 with 1.2.0 by overwriting constraint 'libbar < 3.0.0' -> 'libbar == 1.2.0' on command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbaz/2.0.0 trace: collect_build: add libfox/1.1.0 @@ -5036,8 +5732,9 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: end libbaz/2.0.0 trace: execute_plan: simulate: yes %.* + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.1.0 with some other version warning: package libbaz/2.0.0 dependency on (libbar < 2.1.0) is forcing downgrade of libbar/2.1.0 to 1.2.0 - trace: try_replace_dependency: replace unsatisfactory package version libbar/2.1.0 with 1.2.0 by adding package spec 'libbar == 1.2.0' to command line + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/2.1.0 with 1.2.0 by adding package spec 'libbar == 1.2.0' to command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libfox/1.1.0 trace: collect_build: add libbaz/2.0.0 @@ -5122,7 +5819,8 @@ test.arguments += --sys-no-query trace: collect_dependents: postpone failure for existing dependent libfoo unsatisfied with dependency libbar/2.1.0 (== 1.2.0) trace: execute_plan: simulate: yes %.* - trace: try_replace_dependency: replace unsatisfactory package version libbar/2.1.0 with 1.2.0 by overwriting spec 'libbar' by 'libbar == 1.2.0' on command line + trace: pkg_build: try to replace unsatisfactory dependency libbar/2.1.0 with some other version + trace: try_replace_dependency: replace unsatisfactory dependency version libbar/2.1.0 with 1.2.0 by adding constraint 'libbar' -> 'libbar == 1.2.0' on command line trace: pkg_build: refine package collection/plan execution from scratch trace: collect_build: add libbar/1.2.0 trace: collect_build_prerequisites: skip configured libbar/1.2.0 @@ -11586,44 +12284,660 @@ test.arguments += --sys-no-query %.* trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) %.* - error: unable to satisfy constraints on package toz - info: tvz/1.0.0 depends on (toz == 0.2.0) - info: tez/1.0.0 depends on (toz == 0.1.0) - info: available toz/0.2.0 - info: available toz/0.1.0 - info: while satisfying tez/1.0.0 - info: explicitly specify toz version to manually satisfy both constraints - %.* - EOE - - $pkg_drop tvz - } - - : restore-unsatisfied-depts - : - { - $clone_cfg; - - # Dependencies: - # - # tez: depends: libbox(c) - # depends: toz == 0.1.0 (c) - # depends: libbar(c) - # - # toz/0.1.0: - # - # toz/0.2.0: depends: libfoo(c) - # depends: libbar(c) - # - # tvz: depends: toz == 0.2.0 (c) - # depends: bax - # depends: libfoo(c) - # - # bax: depends: libfoo(c) - # depends: {libbox libbar} (c) - # - $* tez 2>!; - + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version tez/1.0.0 with 0.1.0 by adding constraint 'tez' -> 'tez == 0.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build: add tez/0.1.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_prerequisites: begin tez/0.1.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {toz | libfoo->{toz/1,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libbar->{toz/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {toz | libfoo->{toz/1,1}}! + trace: collect_build_postponed (4): begin {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (4): skip being built existing dependent toz of dependency libbar + trace: collect_build_postponed (4): cfg-negotiate begin {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (4): cfg-negotiate end {toz | libbar->{toz/2,1}}! + trace: collect_build_postponed (4): end {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (3): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version tez/0.1.0 is denied since it is specified on command line as 'tez == 0.1.0' + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version tvz/1.0.0 with 0.1.0 by adding constraint 'tvz' -> 'tvz == 0.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/0.1.0 + trace: collect_build: add tez/0.1.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_prerequisites: begin tez/0.1.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: begin bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: add {bax 1,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {bax toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 + trace: collect_build: add libbar/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 {tez | libbox->{tez/1,1}}! + trace: collect_build_prerequisites: skip being built existing dependent toz of dependency libbar + trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}!, throwing retry_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to dependent bax, refining configuration + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 + trace: collect_build: add libbar/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 {tez | libbox->{tez/1,1}}! + trace: collect_build_prerequisites: skip being built existing dependent toz of dependency libbar + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent bax/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent toz/0.2.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent toz/0.2.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version tez/0.1.0 is denied since it is specified on command line as 'tez == 0.1.0' + trace: try_replace_dependent: try to replace conflicting dependent tvz/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of conflicting dependent version tvz/0.1.0 is denied since it is specified on command line as 'tvz == 0.1.0' + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('tvz' -> 'tvz == 0.1.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build: add tez/0.1.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_prerequisites: begin tez/0.1.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {toz | libfoo->{toz/1,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libbar->{toz/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {toz | libfoo->{toz/1,1}}! + trace: collect_build_postponed (4): begin {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (4): skip being built existing dependent toz of dependency libbar + trace: collect_build_postponed (4): cfg-negotiate begin {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (4): cfg-negotiate end {toz | libbar->{toz/2,1}}! + trace: collect_build_postponed (4): end {toz | libbar->{toz/2,1}} + trace: collect_build_postponed (3): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version tez/0.1.0 is denied since it is specified on command line as 'tez == 0.1.0' + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tvz/0.1.0 tried earlier for same command line, skipping + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('tez' -> 'tez == 0.1.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {toz | libfoo->{toz/1,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {toz | libfoo->{toz/1,1}}! + trace: collect_build_postponed (4): begin {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (4): skip being built existing dependent toz of dependency libbar + trace: collect_build_postponed (4): cfg-negotiate begin {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (4): cfg-negotiate end {tez toz | libbar->{tez/3,1 toz/2,1}}! + trace: collect_build_postponed (4): end {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (3): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tez/0.1.0 tried earlier for same command line, skipping + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version tvz/1.0.0 with 0.1.0 by adding constraint 'tvz' -> 'tvz == 0.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/0.1.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: begin bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: add {bax 1,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {bax toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/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 {tez | libbox->{tez/1,1}}! + trace: postponed_configurations::add: merge {tez | libbar->{tez/3,1}} into {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}! + trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 merges non-negotiated and/or being negotiated configurations in and results in {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}!, throwing merge_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {tez | libbox->{tez/1,1}}? (shadow cluster-based) + trace: collect_build_prerequisites: skip being built existing dependent toz of dependency libbar + trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves (being) negotiated configurations and results in {tez | libbox->{tez/1,1} libbar->{tez/3,1}}?, throwing retry_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to dependent tez, refining configuration + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {tez | libbox->{tez/1,1}}? (shadow cluster-based) + trace: collect_build_prerequisites: skip being built existing dependent toz of dependency libbar + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is shadow-negotiated + trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1} libbar->{tez/3,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/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 {tez | libbox->{tez/1,1} libbar->{tez/3,1}}! (shadow cluster-based) + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is shadow-negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent toz/0.2.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent toz/0.2.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tez/0.1.0 tried earlier for same command line, skipping + trace: try_replace_dependent: try to replace conflicting dependent tvz/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of conflicting dependent version tvz/0.1.0 is denied since it is specified on command line as 'tvz == 0.1.0' + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('tvz' -> 'tvz == 0.1.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tvz of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin libbox/1.0.0 + trace: collect_build_prerequisites: end libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (3): skip being built existing dependent toz of dependency libfoo + trace: collect_build_postponed (3): cfg-negotiate begin {toz | libfoo->{toz/1,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 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {toz | libfoo->{toz/1,1}}! + trace: collect_build_postponed (4): begin {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (4): skip being built existing dependent toz of dependency libbar + trace: collect_build_postponed (4): cfg-negotiate begin {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (4): cfg-negotiate end {tez toz | libbar->{tez/3,1 toz/2,1}}! + trace: collect_build_postponed (4): end {tez toz | libbar->{tez/3,1 toz/2,1}} + trace: collect_build_postponed (3): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tez/0.1.0 tried earlier for same command line, skipping + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tvz/0.1.0 tried earlier for same command line, skipping + error: unable to satisfy constraints on package toz + info: tvz/1.0.0 depends on (toz == 0.2.0) + info: tez/1.0.0 depends on (toz == 0.1.0) + info: available toz/0.2.0 + info: available toz/0.1.0 + info: while satisfying tez/1.0.0 + info: explicitly specify toz version to manually satisfy both constraints + %.* + EOE + + $pkg_drop tvz + } + + : restore-unsatisfied-depts + : + { + $clone_cfg; + + # Dependencies: + # + # tez: depends: libbox(c) + # depends: toz == 0.1.0 (c) + # depends: libbar(c) + # + # toz/0.1.0: + # + # toz/0.2.0: depends: libfoo(c) + # depends: libbar(c) + # + # tvz: depends: toz == 0.2.0 (c) + # depends: bax + # depends: libfoo(c) + # + # bax: depends: libfoo(c) + # depends: {libbox libbar} (c) + # + $* tez 2>!; + $pkg_status -r >>EOO; !tez configured 1.0.0 libbar configured 1.0.0 @@ -11780,6 +13094,288 @@ test.arguments += --sys-no-query %.* trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replace unsatisfied dependent version tez/1.0.0 with 0.1.0 by adding constraint 'tez' -> 'tez == 0.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/0.1.0 + trace: collect_build: add tez/0.1.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_prerequisites: begin tez/0.1.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tez of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: begin bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: add {bax 1,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {bax toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 + trace: collect_build: add libbar/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 {tez | libbox->{tez/1,1}}! + trace: collect_build_prerequisites: skip being built existing dependent tez of dependency libbar + trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}!, throwing retry_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to dependent bax, refining configuration + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/0.1.0 + trace: collect_build_prerequisites: resume tez/0.1.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/0.1.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/0.1.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/0.1.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent bax/1.0.0 + trace: collect_build: add libbar/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 {tez | libbox->{tez/1,1}}! + trace: collect_build_prerequisites: skip being built existing dependent tez of dependency libbar + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent bax/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent toz/0.2.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent toz/0.2.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of unsatisfied dependent version tez/0.1.0 is denied since it is specified on command line as 'tez == 0.1.0' + trace: try_replace_dependent: try to replace conflicting dependent tvz/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of conflicting dependent version tvz/0.1.0 is denied since it is specified on command line as 'tvz == 0.1.0' + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('tez' -> 'tez == 0.1.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/0.1.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build: add libbox/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip being built existing dependent tez of dependency toz + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: begin bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: add {bax 1,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {bax toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: create {tez | libbar->{tez/3,1}} + trace: collect_build_prerequisites: postpone tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/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 {tez | libbox->{tez/1,1}}! + trace: postponed_configurations::add: merge {tez | libbar->{tez/3,1}} into {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1}}! + trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 merges non-negotiated and/or being negotiated configurations in and results in {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}!, throwing merge_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}! + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {tez | libbox->{tez/1,1}}? (shadow cluster-based) + trace: collect_build_prerequisites: skip being built existing dependent tez of dependency libbar + trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves (being) negotiated configurations and results in {tez | libbox->{tez/1,1} libbar->{tez/3,1}}?, throwing retry_configuration + trace: collect_build_postponed (1): cfg-negotiation of {tez | libbox->{tez/1,1}} failed due to dependent tez, refining configuration + trace: collect_build_postponed (2): begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0 + trace: collect_build_prerequisites: resume tez/1.0.0 + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {tez | libbox->{tez/1,1}}? (shadow cluster-based) + trace: collect_build_prerequisites: skip being built existing dependent tez of dependency libbar + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is shadow-negotiated + trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1} libbar->{tez/3,1}}! + trace: collect_build_postponed (3): begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (3): cfg-negotiate begin {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/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 {tez | libbox->{tez/1,1} libbar->{tez/3,1}}! (shadow cluster-based) + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is shadow-negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bax/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tez | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent toz/0.2.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent toz/0.2.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): end {bax toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_postponed (2): end {tez | libbox->{tez/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: execute_plan: while configuring dependent tez in simulation mode unconstrain (toz == 0.1.0) + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tez/0.1.0 tried earlier for same command line, skipping + trace: try_replace_dependent: try to replace conflicting dependent tvz/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of conflicting dependent version tvz/0.1.0 is denied since it is specified on command line as 'tvz == 0.1.0' error: unable to satisfy constraints on package toz info: tvz/0.1.0 depends on (toz == 0.2.0) command line requires (tvz == 0.1.0) @@ -18962,9 +20558,651 @@ test.arguments += --sys-no-query EOO # While at it make sure that we won't be able to build tvz since it - # requires toz of the 0.2.0 version, which can't be satisfied. + # requires toz of the 0.2.0 version, which initially can't be + # satisfied. But this get automatically resolved by the unsatisfied + # constraints resolution machinery. # - $* tvz --verbose 1 2>>EOE != 0; + $* tvz 2>&1 != 0 | $filter 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz | libfoo->{toz/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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz | libfoo->{toz/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 {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build: add tex/1.0.0 + trace: collect_build_prerequisites: reeval tex/1.0.0 + trace: postponed_configurations::add: create {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 (2): cfg-negotiate begin {bax^ toz | libfoo->{bax/1,1 toz/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 + 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 {tex^ | libbar->{tex/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tex^ | libbar->{bax/2,1 tex/1,1} libbox->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_postponed (3): begin {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libbar + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbar + 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: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_postponed (3): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build: add tiz/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 tvz/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz | libfoo->{toz/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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build_postponed (2): skip dep-postponed existing dependent tex of dependency libfoo + trace: collect_build: add tex/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz | libfoo->{toz/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 {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate begin {bax^ toz | libfoo->{bax/1,1 toz/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 + 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: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: create {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_postponed (3): begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_prerequisites: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/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_postponed (3): skip being built existing dependent bax of dependency libbar + 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 (3): skip being built existing dependent tez of dependency libbar + trace: collect_build_postponed (3): skip dep-postponed existing dependent tex of dependency libbar + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build: add tiz/1.0.0 + 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 (3): cfg-negotiate begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 1,1: libbox} to {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (4): begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): skip being built existing dependent tiz of dependency tex + trace: collect_build_postponed (4): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): 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 {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1 toz/2,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_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 + trace: postponed_configurations::add: add {tex 2,1: libfoo} to {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tex/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): 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 {bax tex tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tex/1,1 tez/3,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tiz/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tiz/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tiz/1.0.0 + trace: collect_build_postponed (4): cfg-negotiate end {tiz^ | tex->{tiz/1,1}}! + trace: collect_build_postponed (4): end {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (3): end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (2): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replace conflicting dependent version tvz/1.0.0 with 0.1.0 by adding constraint 'tvz' -> 'tvz == 0.1.0' on command line + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/0.1.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: skip configured bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz tvz | libfoo->{toz/1,1 tvz/3,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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz tvz | libfoo->{toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: reeval bax/1.0.0 + trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {toz tvz | libfoo->{toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build: add tex/1.0.0 + trace: collect_build_prerequisites: reeval tex/1.0.0 + trace: postponed_configurations::add: create {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 (2): cfg-negotiate begin {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + 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 {tex^ | libbar->{tex/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tex^ | libbar->{bax/2,1 tex/1,1} libbox->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): begin {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libbar + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbar + 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: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_postponed (3): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build: add tiz/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 tvz/0.1.0 + trace: collect_build_prerequisites: begin tvz/0.1.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build: add bax/1.0.0 + trace: collect_build_prerequisites: no cfg-clause for dependency bax/1.0.0 of dependent tvz/0.1.0 + trace: collect_build_prerequisites: skip configured bax/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tvz/0.1.0 + trace: postponed_configurations::add: add {tvz 3,1: libfoo} to {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone tvz/0.1.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz tvz | libfoo->{toz/1,1 tvz/3,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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build_postponed (2): skip dep-postponed existing dependent tex of dependency libfoo + trace: collect_build: add tex/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz tvz | libfoo->{toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: reeval bax/1.0.0 + trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {toz tvz | libfoo->{toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate begin {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,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 + 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: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: create {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tvz/0.1.0 + trace: collect_build_prerequisites: resume tvz/0.1.0 + trace: collect_build_prerequisites: end tvz/0.1.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_postponed (3): begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_prerequisites: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/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_postponed (3): skip being built existing dependent bax of dependency libbar + 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 (3): skip being built existing dependent tez of dependency libbar + trace: collect_build_postponed (3): skip dep-postponed existing dependent tex of dependency libbar + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build: add tiz/1.0.0 + 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 (3): cfg-negotiate begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 1,1: libbox} to {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (4): begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): skip being built existing dependent tiz of dependency tex + trace: collect_build_postponed (4): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): 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 {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1 toz/2,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_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 + trace: postponed_configurations::add: add {tex 2,1: libfoo} to {bax^ toz tvz | libfoo->{bax/1,1 toz/1,1 tvz/3,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tex/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): 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 {bax tex tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tex/1,1 tez/3,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tiz/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tiz/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tiz/1.0.0 + trace: collect_build_postponed (4): cfg-negotiate end {tiz^ | tex->{tiz/1,1}}! + trace: collect_build_postponed (4): end {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (3): end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (2): end {toz tvz | libfoo->{toz/1,1 tvz/3,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent tvz/0.1.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement of conflicting dependent version tvz/0.1.0 is denied since it is specified on command line as 'tvz == 0.1.0' + trace: pkg_build: cannot replace any package, rolling back latest command line adjustment ('tvz' -> 'tvz == 0.1.0') + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add tvz/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz | libfoo->{toz/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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz | libfoo->{toz/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 {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build: add tex/1.0.0 + trace: collect_build_prerequisites: reeval tex/1.0.0 + trace: postponed_configurations::add: create {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 (2): cfg-negotiate begin {bax^ toz | libfoo->{bax/1,1 toz/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 + 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 {tex^ | libbar->{tex/1,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax tex^ | libbar->{bax/2,1 tex/1,1} libbox->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_postponed (3): begin {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent tex of dependency libbar + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbar + 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: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/1.0.0 + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_postponed (3): skip being built existing dependent tez of dependency libbox + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax tex^ toz | libbar->{bax/2,1 tex/1,1 toz/2,1} libbox->{bax/2,1}} + trace: collect_build: add tiz/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 tvz/1.0.0 + trace: collect_build_prerequisites: begin tvz/1.0.0 + trace: collect_build: add toz/0.2.0 + info: package tvz dependency on (toz == 0.2.0) is forcing upgrade of toz/0.1.0 to 0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tvz/1.0.0 + trace: postponed_configurations::add: create {tvz | toz->{tvz/1,1}} + trace: collect_build_prerequisites: postpone tvz/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (1): begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): skip unsatisfied existing dependent tez of dependency toz/0.2.0 due to constraint (toz == 0.1.0) + trace: collect_build_postponed (1): cfg-negotiate begin {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin toz/0.2.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: create {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tvz/1.0.0 + trace: collect_build_prerequisites: resume tvz/1.0.0 + trace: collect_build_prerequisites: end tvz/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {tvz | toz->{tvz/1,1}}! + trace: collect_build_postponed (2): begin {toz | libfoo->{toz/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 bax/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bax/1.0.0: 1,1 + trace: collect_build_postponed (2): skip dep-postponed existing dependent tex of dependency libfoo + trace: collect_build: add tex/1.0.0 + trace: collect_build_postponed (2): re-evaluate existing dependents for {toz | libfoo->{toz/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 {toz | libfoo->{toz/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ toz | libfoo->{bax/1,1 toz/1,1}} + trace: collect_build_prerequisites: re-evaluated bax/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate begin {bax^ toz | libfoo->{bax/1,1 toz/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 + 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: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 + trace: postponed_configurations::add: create {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone bax/1.0.0 + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent toz/0.2.0 + trace: postponed_configurations::add: add {toz 2,1: libbar} to {bax | libbox->{bax/2,1} libbar->{bax/2,1}} + trace: collect_build_prerequisites: postpone toz/0.2.0 + trace: collect_build_postponed (2): cfg-negotiate end {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_postponed (3): begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent bax of dependency libbox + trace: collect_build_prerequisites: pre-reeval tez/1.0.0 + trace: collect_build_prerequisites: re-evaluation of dependent tez/1.0.0 deviated for depends clause 2: now cannot select alternative, previously 1 was selected + trace: collect_build_postponed (3): schedule re-collection of deviated existing dependent tez/1.0.0 + trace: collect_build: add tez/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_postponed (3): skip being built existing dependent bax of dependency libbar + 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 (3): skip being built existing dependent tez of dependency libbar + trace: collect_build_postponed (3): skip dep-postponed existing dependent tex of dependency libbar + trace: collect_build_postponed (3): re-evaluate existing dependents for {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build: add tiz/1.0.0 + 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 (3): cfg-negotiate begin {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbox/1.0.0 + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bax/1.0.0 + trace: collect_build_prerequisites: resume bax/1.0.0 + trace: collect_build_prerequisites: end bax/1.0.0 + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent toz/0.2.0 + trace: collect_build_prerequisites: resume toz/0.2.0 + trace: collect_build_prerequisites: end toz/0.2.0 + trace: collect_build_postponed (3): cfg-negotiate end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: begin tez/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 1,1: libbox} to {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbox/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: postpone failure for dependent tez unsatisfied with dependency toz/0.2.0 (== 0.1.0) + trace: collect_build: pick toz/0.2.0 over toz/0.1.0 + trace: collect_build_prerequisites: cfg-postpone dependency toz/0.2.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 2,1: toz} to {tvz | toz->{tvz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency toz/0.2.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 + trace: postponed_configurations::add: add {tez 3,1: libbar} to {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tez/1.0.0 + trace: collect_build_postponed (4): begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): skip being built existing dependent tiz of dependency tex + trace: collect_build_postponed (4): cfg-negotiate begin {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (4): 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 {bax tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tez/3,1 toz/2,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_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent tex/1.0.0 + trace: postponed_configurations::add: add {tex 2,1: libfoo} to {bax^ toz | libfoo->{bax/1,1 toz/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tex/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): 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 {bax tex tez toz | libbox->{bax/2,1 tez/1,1} libbar->{bax/2,1 tex/1,1 tez/3,1 toz/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tiz/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tiz/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end tiz/1.0.0 + trace: collect_build_postponed (4): cfg-negotiate end {tiz^ | tex->{tiz/1,1}}! + trace: collect_build_postponed (4): end {tiz^ | tex->{tiz/1,1}} + trace: collect_build_postponed (3): end {bax toz | libbox->{bax/2,1} libbar->{bax/2,1 toz/2,1}} + trace: collect_build_postponed (2): end {toz | libfoo->{toz/1,1}} + trace: collect_build_postponed (1): end {tvz | toz->{tvz/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + trace: pkg_build: try to replace unsatisfactory dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace unsatisfied dependent tez/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependent: try to replace conflicting dependent tvz/1.0.0 of dependency toz/0.2.0 with some other version + trace: try_replace_dependency: replacement tvz/0.1.0 tried earlier for same command line, skipping error: unable to satisfy constraints on package toz info: tvz/1.0.0 depends on (toz == 0.2.0) info: tez/1.0.0 depends on (toz == 0.1.0) @@ -18972,6 +21210,7 @@ test.arguments += --sys-no-query info: available toz/0.1.0 info: while satisfying tez/1.0.0 info: explicitly specify toz version to manually satisfy both constraints + %.* EOE $pkg_drop bax tiz tez diff --git a/tests/pkg-build/t4k b/tests/pkg-build/t4k new file mode 120000 index 0000000..a4fa90c --- /dev/null +++ b/tests/pkg-build/t4k @@ -0,0 +1 @@ +../common/satisfy/t4k \ No newline at end of file -- cgit v1.1