Doing this in response to low disk space had a higher chance of freeing
space by uninstalling something that was just built as a dependency of
the next build, meaning it would be immediately reinstalled.
* Only deactivate ports that are not needed for the next build, rather
than always deactivating everything.
* Only deactivate ports before dependency installations if building
from source (most installs will now be from an archive).
* Fail fast if a dependency is in the failcache, rather than continuing
to check the rest of the deps. That does mean that multiple failed
deps might have to be discovered one at a time by maintainers, but
on the other hand the failcache checks can really add up and cause us
to spend significant time on a port that we already know will fail.
* Replace much shell code with Tcl in order to take advantage of direct
API access to avoid repeated work.
* Turn off verbose and debug output during the final activation step.
See: https://trac.macports.org/ticket/62621
It's reasonably common for ports to have a number of dependencies that
aren't used by anything else. Installing one of these ports for the
first time performs very poorly when ports with one or less dependents
are uninstalled between every build, as many of the deps that are
built are immediately uninstalled, only to be installed (and
uninstalled) again and again in subsequent builds.
Only uninstalling these ports as part of portwatcher builds should
greatly mitigate this effect.
The `--help` option has been replaced by a new `help` subcommand.
Invoking `mpbb help` displays global usage and available subcommands,
while `mpbb help <subcommand>` displays subcommand-specific usage.
Each subcommand script `mpbb-FOO` must now define a function `FOO-usage`
that prints its specific help to standard out.
git-svn-id: https://svn.macports.org/repository/macports/contrib/mp-buildbot@152528 d073be05-634f-4543-b044-5fe20cf6d1d6
À la Git, command-line options that are applicable to all subcommands
(e.g., `--prefix`) are now given before the subcommand name, while
options that are specific to particular subcommands (e.g.,
`--archive-site`) come after. For example, this:
mpbb checkout --prefix /opt/local --svn /usr/bin/svn
is now:
mpbb --prefix /opt/local checkout --svn /usr/bin/svn
This is a practical improvement as well as a conceptual one, as the
Buildbot configuration will be able to factor out the common command
prefix like so:
cmd = ('./mpbb/mpbb', '--prefix', WithProperties(prefix))
cmd_selfupdate = cmd + ('selfupdate',)
cmd_checkout = cmd + ('checkout', '--svn-url', svnurl)
[...]
For backwards compatibility with our current Buildbot deployment, all
subcommands except `list-subports` still accept `--prefix`.
git-svn-id: https://svn.macports.org/repository/macports/contrib/mp-buildbot@152525 d073be05-634f-4543-b044-5fe20cf6d1d6