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.
previous commit led to
```
rm: refusing to remove '.' or '..' directory: skipping 'void-packages/masterdir/tmp/.'
rm: refusing to remove '.' or '..' directory: skipping 'void-packages/masterdir/tmp/..'
```
465e481b70 forgot `rm -r` when cleaning /tmp. As a result,
`xbps-src clean` returned 1 when directories are present in /tmp
because the last `rm` returned with an (suppressed) error.
Also use the global variables for builddir and destdir, to be more
consistent.
This is useful for example with multiple hostdirs/masterdirs when
you want to have configuration files for each, specifying different
flags without passing it on command line every time.
[ci skip]
This way we can e.g. have XBPS_MAKEJOBS set in config file while
overriding it with -j.
This also notably changes some other semantics. Particularly,
links in hostdir/masterdir are now always resolved regardless of
how they are provided (via arg or via config), and the -o option
for xbps-src specifying build options merges with whatever was
previously specified in config file, instead of overriding. This
makes more sense overall as options specified on command line
actually apply to every package built during that run.
[ci skip]
There's no reason to use xbps-src as root, and looks like
there's a lot of reports of this abuse.
Unless XBPS_ALLOW_CHROOT_BREAKOUT is set (travis),
using xbps-src as root now returns an error.
That means instead of having a single hostdir/repocache, there
is now hostdir/repocache-$XBPS_TARGET_MACHINE.
This solves multiple problems:
1) When cross-compiling for different architectures and the repos
for host and target differ, you will not get signature/checksum
conflicts for noarch packages.
2) The clean-repocache command will not delete noarch packages that
don't belong to that architecture.
3) Clean mixing of glibc and musl masterdirs with the same hostdir
is now possible; even when building natively, the musl masterdir
will use its repocache-foo-musl, while the glibc masterdir will
use repocache-foo.
[ci skip]
The problem here is that newly introduced behavior in commit
b2b0409be4 resulted in builddir and
destdir *always* being removed when starting a build, as a part of
masterdir auto-update. We don't want this as we may want to resume
a previous build (e.g. by running stages individually or by resuming
a failed build from where it stopped).
Therefore, explicitly override the removal to restore previous behavior.
This patchset contains multiple changes to xbps-src and
its required package "base-chroot" for building packages
via chroot.
- moved xbps.d(5) conf files to `etc/xbps.d`.
- renamed xbps.d(5) repository files to `etc/xbps.d/repos-{local,remote}*`.
- do not set `--repository` to any xbps command that supports it,
xbps-src now simply populates `rootdir/etc/xbps.d` with correct
settings (taking care of CHROOT_READY/IN_CHROOT).
- Unless `-C` is set (to preserve builddir/destdir/autodeps), when
entering to the chroot (if CHROOT_READY is set), xbps-src will
clean up the masterdir and then perform a system update to always
use a constant set of packages for that exact date.
- Improved some normal/error msgs.
- Includes support for `xbps>=0.58`.
- common/hooks: switch to bsdtar.
- base-chroot:
- base-chroot-musl is gone, now unified for glibc/musl.
- deps removed: gettext, mpfr, readline, texinfo, which, xz.
- deps changed: tar -> bsdtar.
Effectively this reduces dependencies in `base-chroot`, makes
it unified for musl and glibc, switches xbps-src to use `bsdtar`
rather than GNU `tar` and `xz`, gets rid of useless host dependencies
like GNU gettext, texinfo, etc.
I've been testing these changes for 1 month or so already,
I was able to build from scratch `base-system` for both native
and multiple targets, i.e `./xbps-src -a target -Nt pkg base-system`