Commit Graph

1134 Commits

Author SHA1 Message Date
Piraty d4a585920c xbps-src: document -q 2020-03-27 08:51:04 +00:00
Piraty c84e307c68 xbps-src: correctly cleanup masterdir/tmp (really)
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/..'
```
2020-02-26 19:04:36 +01:00
Piraty 6f328a3532 xbps-src: correctly cleanup masterdir/tmp in the 'clean' target
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.
2020-02-26 16:44:14 +01:00
q66 e689e701c4 xbps-src: add support for specifying custom configurations
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]
2020-02-12 14:40:01 +01:00
q66 bf038d9c70 xbps-src: have cmdline arguments take precedence over config files
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]
2020-02-12 14:12:01 +01:00
Juan RP b1ecdb8bd0 xbps-src: forbid use with root.
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.
2020-02-06 09:06:59 +01:00
q66 f0e852c511 xbps-src: implement per-architecture repocache
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]
2020-01-28 18:25:39 +01:00
q66 4098c62ebc xbps-src: prevent builddir/destdir from always being removed
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.
2020-01-28 01:09:04 +01:00
Juan RP 50c641ddcf xbps-src: updated list of required host utils. 2020-01-05 10:44:56 +01:00
Juan RP 75eca1b03e xbps-src: base-chroot-v2 (reduce artifacts/deps)
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`
2020-01-05 10:44:56 +01:00
Stefano Ragni da3b4d552a xbps-src: fix spelling 2019-11-08 19:18:30 +01:00
Juan RP b94cc0ba26
xbps-src/zap: missing \n 2019-10-21 18:56:24 +02:00
Piraty 80e4a39926 xbps-src: (zap) correctly empty the masterdir
Instead of relying on a potentially outdated list of files and dirs to
remove, just remove+recreate the whole masterdir.

This previously led to leftover .xbps* files, which broke subsequent
operations

Fixes #14476
2019-10-21 18:55:19 +02:00
q66 ad34a8553c xbps-src: generalize 32-bit masterdirs on 64-bit hosts
Previously the check was hardcoded for i686 on x86_64. This can
however also work for ppc64 (BE) running a ppc masterdir as well
as aarch64 running armv* masterdirs.
2019-08-11 14:05:13 +02:00
Doan Tran Cong Danh 06cbdef6eb xbps-src: redirect various error msg to stderr
We couldn't use msg_red or msg_error,
since they won't be available until line #680
2019-07-24 15:13:54 +02:00
Juan RP 818d2d59cd
xbps-src: relax check for writable hostdir.
buildbot does not like it.
2019-07-10 20:30:18 +02:00
Juan RP e4984d01ea xbps-src: multiple performance improvements
- use xbps-checkvers(1) to resolve dependencies.
- all dependencies are installed at once for the host and target.
- the show-build-deps target is now much faster.
- the update-bulk/show-repo-updates targets are now much faster.
- the update-sys/show-sys-updates targets are now much faster.
- the bootstrap target now works on musl hosts.
- simplified some loops.
- use cut(1) rather than awk(1) where applicable.
- multiple random changes to improve performance.

Based on work started by @Duncaen on #12433

Close #12433
Close #11282
2019-07-10 20:28:46 +02:00
Jürgen Buchmüller 17ba00b095 Revert "xbps-src: multiple performance improvements."
This reverts commit 2a4e178e35.
2019-07-05 12:08:45 +02:00
Jürgen Buchmüller 7c4b177043 Revert "xbps-src: fix reconfiguration of bootstrap pkgs."
This reverts commit ba4c05aa00.
2019-07-05 12:08:42 +02:00
Jürgen Buchmüller a5968491c7 Revert "xbps-src: silence `show-avail`"
This reverts commit 5c4d340c5f.
2019-07-05 12:08:40 +02:00
Juan RP 5c4d340c5f xbps-src: silence `show-avail` 2019-07-05 08:53:52 +02:00
Juan RP ba4c05aa00 xbps-src: fix reconfiguration of bootstrap pkgs. 2019-07-05 08:53:51 +02:00
Juan RP 2a4e178e35 xbps-src: multiple performance improvements.
- use xbps-checkvers(1) to resolve dependencies.
- all dependencies are installed at once for the host and target.
- the `show-build-deps` target is now much faster.
- the `update-bulk/show-repo-updates` targets are now much faster.
- the `update-sys/show-sys-updates` targets are now much faster.
- the `bootstrap` target now works on musl hosts.
- simplified some loops.
- use cut(1) rather than awk(1) where applicable.
- multiple random changes to improve performance.

Based on work started by @Duncaen on https://github.com/void-linux/void-packages/pull/12433

Close https://github.com/void-linux/void-packages/pull/12433
Close https://github.com/void-linux/void-packages/pull/11282
2019-07-05 08:53:51 +02:00
Juan RP 67cd850ebf
xbps-src: introduce XBPS_REPO_COMPTYPE for etc/conf.
This sets the repository data compression format, as explained
in xbps-rindex(1). By default set to `gzip'.
2019-06-25 10:52:37 +02:00
Juan RP 2127bd2e00
xbps-src: require xbps>=0.55.
Build dependencies are now installed with -I, --ignore-file-conflicts.
A new option introduced in xbps-0.55 that just prints
conflicting files but does not error out.

Switch to xbps-fetch and xbps-digest.
2019-06-21 17:21:38 +02:00
Juan RP d778cbdc70
Revert "xbps-src: require xbps>=0.54."
This reverts commit 198acb8e39.

I'm reverting this until I fix the issue properly.
2019-06-21 13:04:43 +02:00
Juan RP 198acb8e39
xbps-src: require xbps>=0.54.
if xbps-install(1) returns EEXIST, treat it as an error,
do not ignore it.

xbps-install(1) now returns only EEXIST for file conflicts
in transaction, so that it should not be ignored.
2019-06-21 11:47:15 +02:00
John c614dba6cf xbps-src: set NOCOLOR early 2019-06-19 16:26:57 +00:00
Juan RP 343448a186
xbps-src: take into account XBPS_ALT_REPOSITORY if set.
otherwise it won't be used while installing bootstrap pkgs.
2019-06-19 16:12:49 +02:00
Juan RP fab6617758
xbps-src: remove builddir properly in the clean target.
I've seen some go packages changing the permissions to
some directories, hence force them.
2019-06-19 11:49:05 +02:00
Peter Bui 7e1ffb6d71 export XBPS_BINPKG_EXISTS rather than mark it as readonly
srcpkg_get_version and srcpkg_get_pkgver require unsetting
XBPS_BINPKG_EXISTS to work properly (e.g. without it, some packages have
a trailing -).  Unfortunately, bash does not allow unsetting readonly
variables, which XBPS_BINPKG_EXISTS is exported as in xbps-src.

To resolve this problem, simply export XBPS_BINPKG_EXISTS as a normal
variable rather than marking it as readonly.  This addresses #11740.
2019-06-04 15:44:49 +02:00
yopito c15d85987f xbps-src: recompute XBPS_MASTERDIR and XBPS_HOSTDIR in chroot stage 2019-06-04 15:43:48 +02:00
human 2a854ad697 xbps-src: enter chroot before bootstrap-update
fixes https://github.com/void-linux/void-packages/issues/11848
2019-06-04 11:51:19 +02:00
human 1c9aa6911e xbps-src: fix typo in help text 2019-06-04 11:51:19 +02:00
maxice8 fa40215823 xbps-src: replace dirname(1) usage 2019-04-14 12:46:51 -03:00
Juan RP 1ee6a3174f xbps-src: reduce basename(1) usage.
This saves a few exec()s.
2019-04-14 01:47:16 -03:00
maxice8 fadca94b98 common: add chroot-style 'ethereal' 2019-04-05 05:49:34 -03:00
maxice8 2536f0c67a xbps-src: remove support for noarch on show-pkg-var 2019-03-14 19:22:06 -03:00
maxice8 0c31f1001e xbps-src: remove support for only_for_archs on show-pkg-var 2019-03-14 19:20:07 -03:00
maxice8 93a0a93ea9 xbps-src; export XBPS_GIT_CMD, defaulting to chroot-git and fallback on
git.
2019-03-07 17:26:45 -08:00
maxice8 548c3dab25 xbps-src: drop git requirement
All the code should try chroot-git then git. The 2 instances of git
usage do it, the only code left is in common/travis.
2019-03-07 17:26:45 -08:00
maxice8 6f0342c65e xbps-src: add explanation of patch phase and fix ordering 2019-02-27 22:56:19 -03:00
maxice8 4abed9c425 xbps-src: add support for patch phase 2019-02-27 22:56:19 -03:00
Duncaen f0ef8e8792 xbps-src: add clean-repocache command 2019-02-14 05:42:03 -02:00
Duncaen 2e108ebfdf xbps-src: unbreak bootstrap-update by reverting to previous method 2019-02-05 13:01:05 +01:00
Juan RP 9bf179825f xbps-src: fix 'clean' and 'remove-autodeps' targets again.
Broke them in f35aa4cc19
2019-02-02 19:03:58 +01:00
Juan RP f35aa4cc19
xbps-src: perform chroot setup via binary-boostrap or bootstrap-update.
This will improve performance somewhat on buildbot because the bootstrap pkgs
will only be configured once, and not each time due to `xbps-src -t`.

Also remove redundant checks.
2019-02-02 13:35:18 -02:00
Cameron Nemo 2b569f1ef8 xbps-src: add show host/makedepends subcommand 2019-01-26 21:41:10 -02:00
maxice8 78333e638f
xbps-src: export XBPS_BUILDHELPERDIR 2019-01-25 20:44:41 -02:00
maxice8 de9ca04298 xbps-src: make XBPS_FETCH_CMD readonly 2019-01-21 16:17:02 -02:00