* 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
This was previously done so that the dependencies' archives could be
gathered if needed, but now that will have been done in separate
builds.
Closes: https://trac.macports.org/ticket/57568
* 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
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
MacPorts 2.3.5 lists maintainers in a different format:
Email: username@macports.org, GitHub: username
which broke extraction of maintainers' emails.
This is a temporary workaround before a better fix is committed to base.
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
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