Consider a port mirrored if any of its variants and platforms
succeeded. Still re-mirror ports that are explicitly specified on the
command line if they did not completely succeed previously, so
mirroring can be forced.
Ports might change portgroups or supported architectures depending on
their variant selection, so support variant passing for those tools.
This is a dependency for mpbb list-subports to support variants.
The tool scripts do only read-only operations with the macports API,
so nothing needs to be saved, and there's no point deallocating
anything as we're just going to exit immediately anyway.
Check if the archive for the requested port exists in its installed
location, and if so, simply skip installing.
Do the same for each dependency. Dependencies are still built if not
already installed (even if the requested port is somehow already
installed), so their archives can be uploaded.
Deactivate all ports between builds when installing dependencies.
Activate all the dependencies after they are all installed iff the
requested port will need to be built.
Fixes: https://trac.macports.org/ticket/52765
If a port's build has previously failed, we do not want to waste cycles
to re-attempt it (e.g. as dependencies of other ports), unless the
failed port's definition has changed.
To achieve that, create a file with a reference to the last failed build
for every failing port, and fail builds that depend on failed ports
early.
git-svn-id: https://svn.macports.org/repository/macports/contrib/mp-buildbot@152581 d073be05-634f-4543-b044-5fe20cf6d1d6
Adding a failcache to avoid wasting time requires a path per port that
we can use to cache the result of the last build. Since we're planning
to support variants in mp-buildbot, this path needs to be
variant-specific as well. In order to implement the fail cache, we thus
need working variant support first.
Fix a bug in the variant calculation of dependencies that would trigger
in the following situation:
port bar:
depends_lib port:foo
port foo:
default_variants +foo +bar
./tools/dependencies.tcl bar -bar
This setup used to print "foo +foo" only, but passing that to "port
install" would still install foo with the bar variant. With this change,
the correct value "foo -bar+foo" is printed instead.
git-svn-id: https://svn.macports.org/repository/macports/contrib/mp-buildbot@152489 d073be05-634f-4543-b044-5fe20cf6d1d6
foreach ditem $dlist {...} does not print items in topologic sorting, but we
need that to ensure that we always know exactly which port failed to install in
mpbb install-dependencies. Fix this by using dlist_eval, which is guaranteed to
sort accordingly.
git-svn-id: https://svn.macports.org/repository/macports/contrib/mp-buildbot@151083 d073be05-634f-4543-b044-5fe20cf6d1d6