Due to this change, `./xbps-src sort-dependencies` will take
checkdepends into account when using -Q or -K.
Before this commit, if `pkgA` checkdepends on `pkgB`, sort-dependencies
could still print `pkgA` before `pkgB`. This causes CI to build `pkgB`
twice: first when building `pkgA`, which forces implicit build of pkgB;
second when building `pkgB` (explicit, so it will ignore the package is
already built).
The implementation uses `skip_check_step()` from previous commit, for
consistency, so checkdepends are only taken into account if the check
step would be enabled.
In particular, nothing is changed unless -Q or -K flag is passed.
EXAMPLE:
Before:
```
$ ./xbps-src -Q sort-dependencies python3-process-tests python3-pytest-cov
python3-pytest-cov
python3-process-tests
```
After:
```
$ ./xbps-src -Q sort-dependencies python3-process-tests python3-pytest-cov
python3-process-tests
python3-pytest-cov
```
previously this defaulted to 1. In some rare cases, nproc is not
desirable, but that can be easily overriden in the standard ways,
etc/conf or -jN.
For compatibility with other distros, it defaults to 1 when nproc
is not available.
This significantly speeds up the package building process for build
scripts etc. that run './xbps-src pkg ...' on a long list of packages
that may already have up-to-date local packages built when configured
with XBPS_PRESERVE_PKGS set.
* List dependencies of subpackages as part of the source packages
dependencies, knowing the subpackage they are coming from does
not matter to a build scheduler as long as xbps-src requires
those to exist in the same way to main depends= have to exist.
* Resolve virtual? packages through existing means in xbps-src to
avoid duplicating and possibly diverting from xbps-src's
behaviour in tools that use dbulk-dump.
* Filter out dependencies on the template itself from sub packages,
this matches the xbps-src behaviour and there is no need to
have to duplicate logic for this into the scheduling tool.
* Error out on archs= restrictions as we do already on broken=
and nocross=, there shouldn't be the need to discover archs=
restrictions when attempting to build the package.
Some packages have rather long test suites, with an option for a shorter
one. With this option, one can choose between shorter tests (-Q) or the
complete longer ones (-K).
This also allows CI to run only the shorter testsuites.
Make the appropriate changes to etc/default.conf and Manual.md as well.
previously, xbps-src clean foo didn't clean autodeps but
only foo's builddir and destdir. This is useful for clean
rebuilds without re-installing all dependencies.
Fixes: 795429f1a4
- Remove .travis.yml, common/travis/docker.sh.
- Change references to travis to be more generic.
- Manual.md: Orient against using CI logs in broken= or nocross=.
Flag options was appended to XBPS_PKG_OPTIONS, but was later
overwritten by sourcing config. Instead, pass only flags
options in separate variable and join at very end.
When xbps-install is called without "-C", xbps-install will pick
configuration from the location configured at build time.
Should the default location not have a valid repository configuration,
we couldn't run binary-bootstrap.
On bootstrapping from scratch, without this change, xbps looks into
system configuration, which isn't what we want.
Run xbps-install with our internal configuration instead.
bison, flex, libtool, gettext, texinfo are not necessary
unless a bootstrap pkg uses gnu-configure and we run autoreconf.
I performed a full bootstrap build on my system that does not
contain any of those pkgs and it succeeded.
Please do not rely on autoconf/automake for any "bootstrap" pkg.