From b3ca587b6c7c6f3f3c2bfa63629878c090f4a5a2 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 22 Feb 2018 00:32:30 +0300 Subject: Add support for version control-based repos to pkg-build --- bpkg/pkg-build.cxx | 232 +++++++++++++++++++------------- tests/common/git/state0/libbar.tar | Bin 71680 -> 71680 bytes tests/common/git/state0/libfoo.tar | Bin 296960 -> 296960 bytes tests/common/git/state0/style-basic.tar | Bin 71680 -> 71680 bytes tests/common/git/state0/style.tar | Bin 133120 -> 133120 bytes tests/common/git/state1/libbaz.tar | Bin 61440 -> 61440 bytes tests/common/git/state1/libfoo.tar | Bin 378880 -> 378880 bytes tests/common/git/state1/style-basic.tar | Bin 71680 -> 71680 bytes tests/common/git/state1/style.tar | Bin 133120 -> 133120 bytes tests/pkg-build.test | 130 +++++++++++++++--- tests/pkg-checkout.test | 17 ++- tests/pkg-system.test | 40 +++--- 12 files changed, 283 insertions(+), 136 deletions(-) diff --git a/bpkg/pkg-build.cxx b/bpkg/pkg-build.cxx index 67dbd51..dbb336d 100644 --- a/bpkg/pkg-build.cxx +++ b/bpkg/pkg-build.cxx @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -1613,19 +1614,23 @@ namespace bpkg // Ok, we have "all systems go". The overall action plan is as follows. // - // 1. disfigure up/down-graded, reconfigured [left to right] - // 2. purge up/down-graded - // 3. fetch new, up/down-graded - // 4. unpack new, up/down-graded - // 5. configure all [right to left] - // 6. build user selection [right to left] + // 1. disfigure up/down-graded, reconfigured [left to right] + // 2. purge up/down-graded [right to left] + // 3.a fetch/unpack new, up/down-graded + // 3.b checkout new, up/down-graded + // 4. configure all + // 5. build user selection [right to left] // // Note that for some actions, e.g., purge or fetch, the order is not // really important. We will, however, do it right to left since that // is the order closest to that of the user selection. // - // We are also going to combine purge/fetch/unpack into a single step - // and use the replace mode so it will become just fetch/unpack. + // We are also going to combine purge and fetch/unpack|checkout into a + // single step and use the replace mode so it will become just + // fetch/unpack|checkout. Configure will also be combined with the above + // operations to guarantee that prerequisite packages are configured by + // the time its dependents need to be checked out (see the pkg_checkout() + // function implementation for details). // // Almost forgot, there is one more thing: when we upgrade or downgrade a // package, it may change the list of its prerequisites. Which means we @@ -1704,120 +1709,159 @@ namespace bpkg } } - // purge/fetch/unpack + // purge, fetch/unpack|checkout, configure // for (build_package& p: reverse_iterate (pkgs)) { shared_ptr& sp (p.selected); const shared_ptr& ap (p.available); - if (ap == nullptr) // Skip dependents. - continue; - - // System package should not be fetched, it should only be configured on - // the next stage. Here we need to purge selected non-system package if - // present. Before we drop the object we need to make sure the hold - // state is preserved for the package being reconfigured. + // Purge the system package, fetch/unpack or checkout the source one. // - if (p.system) + for (;;) // Breakout loop. { - if (sp != nullptr && !sp->system ()) + if (ap == nullptr) // Skip dependents. + break; + + // System package should not be fetched, it should only be configured + // on the next stage. Here we need to purge selected non-system package + // if present. Before we drop the object we need to make sure the hold + // state is preserved for the package being reconfigured. + // + if (p.system) { - transaction t (db.begin ()); - pkg_purge (c, t, sp); // Commits the transaction. + if (sp != nullptr && !sp->system ()) + { + transaction t (db.begin ()); + pkg_purge (c, t, sp); // Commits the transaction. - if (verb) - text << "purged " << *sp; + if (verb) + text << "purged " << *sp; - if (!p.hold_package) - p.hold_package = sp->hold_package; + if (!p.hold_package) + p.hold_package = sp->hold_package; - if (!p.hold_version) - p.hold_version = sp->hold_version; + if (!p.hold_version) + p.hold_version = sp->hold_version; + + sp.reset (); + } - sp.reset (); + break; } - continue; - } + // Fetch or checkout if this is a new package or if we are + // up/down-grading. + // + if (sp == nullptr || sp->version != p.available_version ()) + { + sp.reset (); // For the directory case below. - // Fetch if this is a new package or if we are up/down-grading. - // - if (sp == nullptr || sp->version != p.available_version ()) - { - sp.reset (); // For the directory case below. + // Distinguish between the package and archive/directory cases. + // + const package_location& pl (ap->locations[0]); // Got to have one. - // Distinguish between the package and archive/directory cases. - // - const package_location& pl (ap->locations[0]); // Got to have one. + if (pl.repository.object_id () != "") // Special root? + { + // Go through package repositories to decide if we should fetch or + // checkout. Preferring a local one over the remotes seems like a + // sensible thing to do. + // + optional fetch; - if (pl.repository.object_id () != "") // Special root? - { - transaction t (db.begin ()); - sp = pkg_fetch (o, - c, - t, - ap->id.name, - p.available_version (), - true); // Replace; commits the transaction. - } - else if (exists (pl.location)) // Directory case is handled by unpack. - { - transaction t (db.begin ()); - sp = pkg_fetch (o, - c, - t, - pl.location, // Archive path. - true, // Replace - false); // Don't purge; commits the transaction. - } + for (const package_location& l: ap->locations) + { + const repository_location& rl (l.repository.load ()->location); - if (sp != nullptr) // Actually unpacked something? - { - assert (sp->state == package_state::fetched); + if (!fetch || rl.local ()) // First or local? + { + fetch = rl.archive_based (); - if (verb) - text << "fetched " << *sp; - } - } + if (rl.local ()) + break; + } + } - // Unpack. Note that the package can still be NULL if this is the - // directory case (see the fetch code above). - // - if (sp == nullptr || sp->state == package_state::fetched) - { - if (sp != nullptr) - { - transaction t (db.begin ()); - sp = pkg_unpack (o, c, t, ap->id.name); // Commits the transaction. - } - else - { - const package_location& pl (ap->locations[0]); - assert (pl.repository.object_id () == ""); // Special root. + assert (fetch); + + transaction t (db.begin ()); - transaction t (db.begin ()); - sp = pkg_unpack (c, + // Both calls commit the transaction. + // + sp = *fetch + ? pkg_fetch (o, + c, t, - path_cast (pl.location), - true, // Replace. - false); // Don't purge; commits the transaction. + ap->id.name, + p.available_version (), + true /* replace */) + : pkg_checkout (o, + c, + t, + ap->id.name, + p.available_version (), + true /* replace */); + } + // Directory case is handled by unpack. + // + else if (exists (pl.location)) + { + transaction t (db.begin ()); + sp = pkg_fetch ( + o, + c, + t, + pl.location, // Archive path. + true, // Replace + false); // Don't purge; commits the transaction. + } + + if (sp != nullptr) // Actually fetched or checked out something? + { + assert (sp->state == package_state::fetched || + sp->state == package_state::unpacked); // Checked out. + + if (verb) + text << (sp->state == package_state::fetched + ? "fetched " + : "checked out ") << *sp; + } } - assert (sp->state == package_state::unpacked); + // Unpack if required. Note that the package can still be NULL if this + // is the directory case (see the fetch code above). + // + if (sp == nullptr || sp->state == package_state::fetched) + { + if (sp != nullptr) + { + transaction t (db.begin ()); + sp = pkg_unpack (o, c, t, ap->id.name); // Commits the transaction. + } + else + { + const package_location& pl (ap->locations[0]); + assert (pl.repository.object_id () == ""); // Special root. + + transaction t (db.begin ()); + sp = pkg_unpack (c, + t, + path_cast (pl.location), + true, // Replace. + false); // Don't purge; commits the transaction. + } - if (verb) - text << "unpacked " << *sp; - } - } + assert (sp->state == package_state::unpacked); - // configure - // - for (build_package& p: reverse_iterate (pkgs)) - { - shared_ptr& sp (p.selected); - const shared_ptr& ap (p.available); + if (verb) + text << "unpacked " << *sp; + } + + break; // Get out from the breakout loop. + } + // Configure the package. + // // At this stage the package is either selected, in which case it's a // source code one, or just available, in which case it is a system // one. Note that a system package gets selected as being configured. diff --git a/tests/common/git/state0/libbar.tar b/tests/common/git/state0/libbar.tar index 23cc354..c98479d 100644 Binary files a/tests/common/git/state0/libbar.tar and b/tests/common/git/state0/libbar.tar differ diff --git a/tests/common/git/state0/libfoo.tar b/tests/common/git/state0/libfoo.tar index 9b44d03..6c059e6 100644 Binary files a/tests/common/git/state0/libfoo.tar and b/tests/common/git/state0/libfoo.tar differ diff --git a/tests/common/git/state0/style-basic.tar b/tests/common/git/state0/style-basic.tar index 1579f50..2e0ef8e 100644 Binary files a/tests/common/git/state0/style-basic.tar and b/tests/common/git/state0/style-basic.tar differ diff --git a/tests/common/git/state0/style.tar b/tests/common/git/state0/style.tar index 1b75bc5..c7e9d4b 100644 Binary files a/tests/common/git/state0/style.tar and b/tests/common/git/state0/style.tar differ diff --git a/tests/common/git/state1/libbaz.tar b/tests/common/git/state1/libbaz.tar index 4bccb1a..fadd780 100644 Binary files a/tests/common/git/state1/libbaz.tar and b/tests/common/git/state1/libbaz.tar differ diff --git a/tests/common/git/state1/libfoo.tar b/tests/common/git/state1/libfoo.tar index dc9d53f..53c5220 100644 Binary files a/tests/common/git/state1/libfoo.tar and b/tests/common/git/state1/libfoo.tar differ diff --git a/tests/common/git/state1/style-basic.tar b/tests/common/git/state1/style-basic.tar index c18148b..9b46120 100644 Binary files a/tests/common/git/state1/style-basic.tar and b/tests/common/git/state1/style-basic.tar differ diff --git a/tests/common/git/state1/style.tar b/tests/common/git/state1/style.tar index 080dc4d..4b2e9e9 100644 Binary files a/tests/common/git/state1/style.tar and b/tests/common/git/state1/style.tar differ diff --git a/tests/pkg-build.test b/tests/pkg-build.test index 3f89b40..0c9180a 100644 --- a/tests/pkg-build.test +++ b/tests/pkg-build.test @@ -2,7 +2,7 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -.include common.test config.test remote.test +.include common.test config.test remote.test remote-git.test # Source repository: # @@ -11,41 +11,56 @@ # |-- libbaz-1.1.0.tar.gz # |-- libfoo-0.0.1.tar.gz # |-- libfoo-1.0.0.tar.gz +# | # |-- libfoo-1.1.0 # | |-- build # | | `-- bootstrap.build # | |-- buildfile # | `-- manifest +# | # |-- libfoo-1.1.0.tar.gz # |-- libfoo-1.2.0.tar.gz +# | # |-- t1 # | |-- libfoo-1.0.0.tar.gz # | `-- repositories +# | # |-- t2 # | |-- libbar-1.0.0.tar.gz -> libfoo # | |-- libfoo-1.0.0.tar.gz # | `-- repositories +# | # |-- t3 -> t2 (prerequisite) # | |-- libbaz-1.0.0.tar.gz -> libbar # | |-- libfox-1.0.0.tar.gz # | `-- repositories +# | # |-- t4a # | |-- libfoo-1.1.0.tar.gz # | `-- repositories +# | # |-- t4b -> t4a (prerequisite) # | |-- libbar-1.1.0.tar.gz -> libfoo == 1.1.0 # | `-- repositories +# | # |-- t4c -> t4b (prerequisite) # | |-- libbaz-1.1.0.tar.gz -> libfoo, libbar # | |-- libfoo-1.0.0.tar.gz # | `-- repositories +# | # |-- t4d -> t4c (prerequisite) # | |-- libbiz-1.0.0.tar.gz -> libfox, libfoo, libbaz # | |-- libfox-1.0.0.tar.gz # | `-- repositories -# `-- t5 -# |-- libbar-1.2.0.tar.gz -# `-- repositories +# | +# |-- t5 +# | |-- libbar-1.2.0.tar.gz +# | `-- repositories +# | +# `-- git +# |-- libbar.git -> style-basic.git (prerequisite) +# |-- libbaz.git +# `-- style-basic.git # Prepare repositories used by tests if running in the local mode. # @@ -60,6 +75,12 @@ cp -r $src/t4c $out/t4c && $rep_create $out/t4c &$out/t4c/packages cp -r $src/t4d $out/t4d && $rep_create $out/t4d &$out/t4d/packages cp -r $src/t5 $out/t5 && $rep_create $out/t5 &$out/t5/packages + + # Create git repositories. + # + $git_extract $src/git/style-basic.tar + $git_extract $src/git/libbar.tar &$out_git/state0/*** + $git_extract $src/git/libbaz.tar &$out_git/state1/*** end pkg_configure += -d cfg "config.cxx=$config.cxx" 2>! @@ -711,14 +732,14 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.1.0% unpacked libfoo/1.1.0 + configured libfoo/1.1.0 %.* %.*fetched libbar/1.1.0% unpacked libbar/1.1.0 + configured libbar/1.1.0 %.* %.*fetched libbaz/1.1.0% unpacked libbaz/1.1.0 - configured libfoo/1.1.0 - configured libbar/1.1.0 configured libbaz/1.1.0 %info: .+dir\{libbaz-1.1.0.\} is up to date% updated libbaz/1.1.0 @@ -852,14 +873,14 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.1.0% unpacked libfoo/1.1.0 + configured libfoo/1.1.0 %.* %.*fetched libbar/1.1.0% unpacked libbar/1.1.0 + configured libbar/1.1.0 %.* %.*fetched libbaz/1.1.0% unpacked libbaz/1.1.0 - configured libfoo/1.1.0 - configured libbar/1.1.0 configured libbaz/1.1.0 %info: .+dir\{libbaz-1.1.0.\} is up to date% updated libbaz/1.1.0 @@ -899,14 +920,14 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.1.0% unpacked libfoo/1.1.0 + configured libfoo/1.1.0 %.* %.*fetched libbar/1.1.0% unpacked libbar/1.1.0 + configured libbar/1.1.0 %.* %.*fetched libbaz/1.1.0% unpacked libbaz/1.1.0 - configured libfoo/1.1.0 - configured libbar/1.1.0 configured libbaz/1.1.0 %info: .+dir\{libbaz-1.1.0.\} is up to date% updated libbaz/1.1.0 @@ -962,10 +983,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+dir\{libbar-1.0.0.\} is up to date% updated libbar/1.0.0 @@ -996,10 +1017,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+dir\{libfoo-1.0.0.\} is up to date% %info: .+dir\{libbar-1.0.0.\} is up to date% @@ -1052,8 +1073,8 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.1.0% unpacked libfoo/1.1.0 - unpacked libbar/1.1.0 configured libfoo/1.1.0 + unpacked libbar/1.1.0 configured libbar/1.1.0 %info: .+dir\{libbar-1.1.0.\} is up to date% updated libbar/1.1.0 @@ -1094,10 +1115,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+dir.+ is up to date% updated libbar/1.0.0 @@ -1133,10 +1154,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+dir.+ is up to date% updated libbar/1.0.0 @@ -1180,10 +1201,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+ is up to date% updated libbar/1.0.0 @@ -1225,10 +1246,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 %info: .+ is up to date% updated libbar/1.0.0 @@ -1270,10 +1291,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libfoo/1.0.0% unpacked libfoo/1.0.0 + configured libfoo/1.0.0 %.* %.*fetched libbar/1.0.0% unpacked libbar/1.0.0 - configured libfoo/1.0.0 configured libbar/1.0.0 EOE @@ -1283,3 +1304,76 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $pkg_disfigure libfoo 2>'disfigured libfoo/1.0.0'; $pkg_purge libfoo 2>'purged libfoo/1.0.0' } + +: git-repos +: +if ($git_supported != true) +{ + # Skip git repository tests. + # +} +else +{ + rep0 = "$rep_git/state0" + rep1 = "$rep_git/state1" + + test.arguments += --yes + + pkg_disfigure += 2>! + pkg_purge += 2>! + + : prerequisite-repo + : + : Prerequisite package of the dependent being built is in the prerequisite + : repository. + : + $clone_root_cfg; + $rep_add "$rep0/libbar.git#master"; + $rep_add "$rep0/style-basic.git#master"; + $rep_fetch &cfg/.bpkg/repositories/*/***; + + $* libmbar 2>>~%EOE%; + %dist style-basic-.+% + %checked out style-basic/.+% + %configured style-basic/.+% + dist libmbar-1.0.0 + checked out libmbar/1.0.0 + configured libmbar/1.0.0 + %info: .+dir\{libmbar-.+\} is up to date% + updated libmbar/1.0.0 + EOE + + $pkg_disfigure libmbar; + $pkg_disfigure style-basic; + + $pkg_purge libmbar; + $pkg_purge style-basic + + : no-prerequisite-repos + : + : Dependent package repository has no prerequisites nor complements. Its + : dependency is picked up via the root repository that complements its + : repository (see rep_fetch() function implementation for details). + : + $clone_root_cfg; + $rep_add "$rep1/libbaz.git#master"; + $rep_add "$rep0/style-basic.git#master"; + $rep_fetch &cfg/.bpkg/repositories/*/***; + + $* libbaz 2>>~%EOE%; + %dist style-basic-.+% + %checked out style-basic/.+% + %configured style-basic/.+% + dist libbaz-1.0.0 + checked out libbaz/1.0.0 + configured libbaz/1.0.0 + %info: .+dir\{libbaz-.+\} is up to date% + updated libbaz/1.0.0 + EOE + + $pkg_disfigure libbaz; + $pkg_disfigure style-basic; + + $pkg_purge libbaz; + $pkg_purge style-basic +} diff --git a/tests/pkg-checkout.test b/tests/pkg-checkout.test index 663a900..a50c0f7 100644 --- a/tests/pkg-checkout.test +++ b/tests/pkg-checkout.test @@ -35,6 +35,8 @@ else rep_add += -d cfg 2>! rep_fetch += -d cfg 2>! pkg_configure += -d cfg 2>! + pkg_disfigure += -d cfg 2>! + pkg_purge += -d cfg 2>! pkg_status += -d cfg test.cleanups += &cfg/.bpkg/repositories/*/*** @@ -57,18 +59,23 @@ else $pkg_status style-basic | sed -n -e 's/available ([^ ]+).+/\1/p' | set v; - $* "style-basic/$v" 2>>"EOE" &cfg/style-basic-$v/***; + $* "style-basic/$v" 2>>"EOE"; dist style-basic-$v checked out style-basic/$v EOE $pkg_configure style-basic; - $* libmbar/1.0.0 2>>EOE &cfg/libmbar-1.0.0/*** + $* libmbar/1.0.0 2>>EOE; dist libmbar-1.0.0 checked out libmbar/1.0.0 EOE + $pkg_disfigure style-basic; + + $pkg_purge libmbar; + $pkg_purge style-basic + : replacement : # @@ Reduce to a single repository when multiple revisions can be specified @@ -91,6 +98,8 @@ else $* "style-basic/$v0" 2>!; $pkg_status style-basic >~"/unpacked $v0;.+/"; - $* --replace "style-basic/$v1" 2>! &cfg/style-basic-$v1/***; - $pkg_status style-basic >~"/unpacked $v1;.+/" + $* --replace "style-basic/$v1" 2>!; + $pkg_status style-basic >~"/unpacked $v1;.+/"; + + $pkg_purge style-basic } diff --git a/tests/pkg-system.test b/tests/pkg-system.test index e89ed33..4d6bb39 100644 --- a/tests/pkg-system.test +++ b/tests/pkg-system.test @@ -155,10 +155,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 - configured libbaz/2 configured libbar/2 configured foo/2 %info: .+ is up to date% @@ -182,10 +182,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $clone_cfg; $pkg_build foo 'sys:libbar/2' 2>>~%EOE%; + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 %info: .+ is up to date% updated foo/2 @@ -206,10 +206,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $clone_cfg; $pkg_build 'sys:libbar/2' foo 2>>~%EOE%; + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 %info: .+ is up to date% updated foo/2 @@ -235,10 +235,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 - configured libbaz/2 configured libbar/2 %info: .+ is up to date% updated libbar/2 @@ -252,10 +252,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $pkg_build foo 'sys:libbar/2' 2>>~%EOE%; disfigured libbar/2 purged libbar/2 + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 disfigured libbaz purged libbaz @@ -283,10 +283,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 - configured libbaz/2 configured libbar/2 %info: .+ is up to date% updated libbar/2 @@ -300,10 +300,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $pkg_build foo 'sys:libbar' 2>>~%EOE%; disfigured libbar/2 purged libbar/2 + configured sys:libbar/* %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/* configured foo/2 disfigured libbaz purged libbaz @@ -338,14 +338,14 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 + configured libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured libbaz/2 - configured libbar/2 configured foo/2 %info: .+ is up to date% %info: .+ is up to date% @@ -383,10 +383,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 - configured libbaz/2 configured libbar/2 configured foo/2 %info: .+ is up to date% @@ -432,14 +432,14 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/2% unpacked libbar/2 + configured libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured libbaz/2 - configured libbar/2 configured foo/2 %info: .+ is up to date% %info: .+ is up to date% @@ -462,10 +462,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $clone_cfg; $pkg_build foo '?sys:libbar' 2>>~%EOE%; + configured sys:libbar/* %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/* configured foo/2 %info: .+ is up to date% updated foo/2 @@ -492,10 +492,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! %.* %.*fetched libbaz/2% unpacked libbaz/2 + configured libbaz/2 %.* %.*fetched libbar/1% unpacked libbar/1 - configured libbaz/2 configured libbar/1 %info: .+ is up to date% updated libbar/1 @@ -518,10 +518,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $pkg_build foo '?sys:libbar/2' 2>>~%EOE%; disfigured libbar/1 purged libbar/1 + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 disfigured libbaz purged libbaz @@ -584,10 +584,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! $clone_cfg; $pkg_build foo 'sys:libbar' 2>>~%EOE%; + configured sys:libbar/* %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/* configured foo/2 %info: .+ is up to date% updated foo/2 @@ -624,10 +624,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! # $pkg_build foo 'sys:libbar/2' 2>>~%EOE%; purged libbar/1 + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 %info: .+ is up to date% updated foo/2 @@ -710,10 +710,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! # Build foo and ?sys:libbar. # $pkg_build foo '?sys:libbar' 2>>~%EOE%; + configured sys:libbar/* %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/* configured foo/2 %info: .+ is up to date% updated foo/2 @@ -759,10 +759,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! # $pkg_build foo '?sys:libbar/2' 2>>~%EOE%; purged libbar/1 + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 %info: .+ is up to date% updated foo/2 @@ -832,10 +832,10 @@ rep_fetch += -d cfg --auth all --trust-yes 2>! # Build foo '?sys:libbar/2'. # $pkg_build foo '?sys:libbar/2' 2>>~%EOE%; + configured sys:libbar/2 %.* %.*fetched foo/2% unpacked foo/2 - configured sys:libbar/2 configured foo/2 %info: .+ is up to date% updated foo/2 -- cgit v1.1