This can happen for ports with huge numbers of variants. A failure of
failcache_success after a successful build would previously appear to
be a failure to build the port.
* Start separate builds for unbuilt dependencies.
* gather-archives can therefore consider only the port being built and
not worry about its deps.
* Exclude ports that have any dependency that sets 'known_fail yes'.
* Exclude dependencies that have a failcache entry or have a recursive
dependency that does. The ports that the build was actually requested
for are still built even if a dep is in the failcache, so that the
failure will be reported to maintainers.
* Delete stale entries from the failcache for relevant ports while
we're at it.
Fixes: https://trac.macports.org/ticket/60935
Without this, the number of failcache entries would increase forever,
as only the entry with the current hash is deleted upon success, while
it's usually an older version with a different hash that failed.
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