Commit graph

1129 commits

Author SHA1 Message Date
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
maxice8
55032f42c4 xbps-src: don't export XBPS_GCC_* 2019-01-18 05:42:18 -02:00
Toyam Cox
f6c93590a2 xbps-src: tell dxpb provides, 32bit, and debug 2018-09-30 10:31:47 -04:00
Michael Aldridge
a4dd50388a xbps-src: Always enable the gocache
[ci_skip]
2018-09-01 22:05:07 -07:00
Jürgen Buchmüller
4ca83f7f90 xbps-src: update GCC version to 8.2.0 2018-08-15 06:50:23 +02:00
Duncaen
5334409c12 Revert "xbps-src: ensure 'changelog' is available"
This reverts commit 1441834458.
2018-05-04 16:46:41 +02:00