Commit Graph

47 Commits

Author SHA1 Message Date
Piotr Wójcik 4ac333c3b1 xbps-src: allow to run without git
This makes possible to binary-bootstrap and build packages
with only base-system using tarball of void-packages.
2021-02-23 18:34:37 +01:00
q66 5922df60c7 xbps-src: make sure to apply FFLAGS properly like CFLAGS 2021-01-03 14:11:02 +01:00
Duncaen 3eed75216c xbps-src: remove proot chroot-style
proot is broken and result in random hard to debug issues,
this is the best way to not have new users use it.
2020-12-29 23:02:16 -08:00
Érico Rolim 83cc290601 xbps-src: add -K option for running the full testsuite.
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.
2020-12-14 00:18:04 -03:00
Juan RP 715faef1a6
etc/defaults.conf: refer to xbps-{create,rindex}(1) for compression format. 2020-03-03 10:36:35 +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
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
Aluísio Augusto Silva Gonçalves 3ad7858f09 etc/defaults.conf: point to xbps-create for compression formats
Ensure this comment is always up-to-date by pointing the reader to the
xbps-create manual.  Default is not xbps-create's, but comes from the
gen-pkg hook.
2019-06-25 10:40:46 +02:00
maxice8 fadca94b98 common: add chroot-style 'ethereal' 2019-04-05 05:49:34 -03:00
maxice8 19f35a82c6
etc/defaults.conf: fix wording 2019-02-26 19:35:50 -03:00
maxice8 62240f4e40
etc/defaults.conf: mention bwrap 2019-02-26 17:28:11 -03:00
Michael Aldridge b1fa5d8398 xbps-src: Update mirror addresses 2018-09-07 12:13:40 +02:00
Michael Gehring e3f56ecb01 xbps-src: support caching go builds
Piggyback on the existing XBPS_CCACHE logic to enable/disable. Stored in
${XBPS_HOSTDIR}/gocache.
2018-03-19 08:29:05 +01:00
Michael Gehring a4a229cf64 xbps-src: use HEAD commit time for SOURCE_DATE_EPOCH
In order to make builds more reproducible SOURCE_DATE_EPOCH was set to
the time of the last commit that touched the template. Since trying to
reproduce a build from a different revision is futile (the most obvious
reason is that the source-revisions property includes the HEAD commit
hash) and looking up the commit in question can take several seconds,
stop wasting time an just use HEAD.

Closes: #12314 [via git-merge-pr]
2018-03-14 12:58:36 +00:00
Jürgen Buchmüller 5a11957d14 Merge branch 'master' into check 2017-05-02 09:18:52 +02:00
Michael Gehring 54fb7c9b9e etc/defaults.conf: fix aarch64* binary bootstrap/update 2017-03-13 08:01:11 +00:00
Jürgen Buchmüller c31dd888f6 xbps-src: implement a 'check' stage
Add another stage 'check' between 'build' and 'install'. It is be enabled using the
variable XBPS_CHECK_PKGS=yes and disabled if unset, set to "0" or "no" in your
local etc/conf.

A new xbps-src option `-q` for `quick` will disable XBPS_CHECK_PKGS by overriding it to 0.
If enabled, `common/xbps-src/shutils/xbps-src-docheck.sh` checks for an existing
`do_check()` function in the package's template and, if it exists, calls it.

A new template variable `checkdepends` may be present and list packages required
to run the `do_check()` function. Example: `checkdepends="bc unittest-cpp"`.
2017-03-08 11:33:48 +01:00
Juan RP da9b7bce98 etc/defaults.conf: switch to https for repo.voidlinux.eu. 2016-04-21 14:02:36 +02:00
Enno Boland c83a4d96c4 hooks/pre-pkg: mtime rewriting is default on now. 2016-02-23 08:05:43 +01:00
Enno Boland 16050ad3f2 hooks/pre-pkg: fixed mtime support for packages.
overwrites the mtime of all files in a package with the commit-date
of the package.
2016-02-19 16:21:56 +01:00
Juan RP 784f75931d xbps-src: move compiler/linker defaults to env/hardening.sh.
The user can still set his/her defaults via etc/conf, and per
package in the templates.
2015-11-17 17:13:12 +01:00
Juan RP 983d68a31e xbps-src: support multiple pkg compression formats via etc/conf.
XBPS_PKG_COMPTYPE can be set via etc/conf to set your preferred compression
format; defaults to xz, like xbps-create(1).

The "none" setting is only available since 0.48 (unreleased).
2015-09-03 12:44:08 +02:00
Juan RP 279ead0999 xbps-src: added XBPS_ALLOW_RESTRICTED conf option for restricted pkgs.
Such packages should set the `restricted' var to allow building a binary package.
Note that such packages do not allow redistribution of sources and binaries,
so that it's up to the user if (s)he wants to pkg it locally.
2015-07-26 10:22:35 +02:00
Juan RP 21e8243ce5 xbps-src: use XBPS_INSTALL_ARGS to repair bootstrap-update. 2015-06-09 09:23:06 +02:00
Juan RP 43062ba0a8 etc: musl.voidlinux.net -> muslrepo.voidlinux.eu 2015-05-25 21:10:28 +02:00
Juan RP 2ac40a8208 etc/defaults.conf: added remote repo for musl in XBPS_INSTALL_ARGS. 2015-05-21 10:46:29 +02:00
Juan RP cf1b7e7849 etc/defaults.conf: remove unshare(1) ref. 2015-05-02 05:37:27 +02:00
Juan RP cad5db125c etc/defaults.conf: document chroot-style/unshare. 2015-04-10 09:39:48 +02:00
Juan RP c7f21fd595 xbps-src: introduce support for multiple chroot implementations.
Available implementations at common/chroot-style/*.sh. Each .sh
script there implements a chroot style to be able to chroot and bind
mount with multiple utilities. The current supported list:

 - uunshare (uses xbps-uunshare(8))
 - uchroot (uses xbps-uchroot(8))
 - proot (uses proot, see http://proot.me)

The XBPS_CHROOT_CMD can be set in etc/conf to use a specific implementation,
and XBPS_CHROOT_CMD_ARGS to pass in additional arguments to the cmd.
2015-04-09 18:57:41 +02:00
Juan RP 4c49a35f43 etc/defaults.conf: move _FORTIFY_SOURCE to CFLAGS.
Lots of pkgs seem to fail when _FORTIFY_SOURCE is defined in CPPFLAGS
due to a missing optimization level, and also some of them simply
ignore CPPFLAGS, therefore move it to CFLAGS to fix this once and for all.
2015-03-12 11:28:27 +01:00
Christian Neukirchen cd01759127 defaults.conf: move -z now to hardened-ld only. 2015-03-08 19:57:01 +01:00
Juan RP e3765bc9b3 etc/defaults.conf: apply full relro completely via LDFLAGS. 2015-03-08 09:26:50 +01:00
Juan RP d056b34dca etc/defaults.conf: fix some comments. 2015-03-04 15:20:57 +01:00
Juan RP 50a116d27a xbps-src: set default compiler/preprocessor/linker flags via etc/conf.
Rather than setting them in the build profile, just set them in
etc/defaults.conf (overridable via etc/conf) to simplify the code.

- Also enable _FORTIFY_SOURCE=2 in CPPFLAGS.
- Also enable -z,relro in LDFLAGS.

As suggested by @chneukirchen.
2015-03-04 15:18:46 +01:00
Juan RP c2bd01c8d3 xbps-src: introduce build profiles and use it by default.
common/build-profiles contains the compilation flags used in native
builds, and are defined per architecture:

	- x86_64 (glibc)
	- x86_64-musl (musl)

If XBPS_CFLAGS or XBPS_CXXFLAGS are set in `etc/conf`, the settings
from the build profile will be overrided.
2014-11-10 11:17:34 +01:00
Juan RP 58bbb98712 xbps-src: move ccache/distcc to hostdir, to make them shared by multiple masterdirs.
This way a single ccache or distcc directory can be shared by multiple
independent masterdirs.
2014-10-26 10:22:30 +01:00
Juan RP 77642dc2e9 etc/defaults.conf: remove XBPS_{HOST,MASTER}DIR vars.
To use an alternative XBPS_{HOST,MASTER}DIR use -H and -m respectively.
2014-10-26 10:10:26 +01:00
Juan RP 2ba4bc82bd etc/defaults.conf: XBPS_REPO_DELTAS is dead. 2014-10-15 09:12:08 +02:00
Juan RP 6928b52a4e xbps-src: full switch to void-packages. 2014-10-11 11:15:02 +02:00
Juan RP 0f576c9f8c etc/defaults.conf: document XBPS_REPO_DELTAS. 2014-08-14 12:33:11 +02:00
Juan RP c9af530628 etc/defaults.conf: matching -> matching. 2014-06-30 11:49:03 +02:00
Juan RP 9d34c36e0a Implemented support for permanent pkg build options (globally or per-pkg).
Permanent global pkg build options can be defined via 'XBPS_PKG_OPTIONS' in etc/conf.
Permament per-pkg build options can be defined via 'XBPS_PKG_OPTIONS_<pkgname>' in etc/conf.

Close GH #452.
2014-06-30 11:32:07 +02:00
Juan RP 05b83a2528 etc/defaults.conf: disable -mtune=generic for now. 2014-05-16 17:17:32 +02:00
Juan RP f2127f6e3b etc/defaults.conf: use -mtune=generic and -fstack-protector-strong by default.
- -mtune=generic provides optimizations for generic CPUs.
- -fstack-protector-strong guards against buffer overflows and stack smashing attacks.
2014-05-16 08:20:08 +02:00
Juan RP d4e4d826e6 xbps-src: new targets: update-bulk and update-sys.
* update-bulk:
	This rebuilds all pkgs in system repositories that are outdated.
	with this xbps-bulk is now considered fully obsolete.

* update-sys:
	This rebuilds all pkgs in system that are oudated and once built,
	updates them via xbps-install(8).

	This target defines a new configuration option "XBPS_SUCMD" that
	is the command to execute to update the system. By default set to
	"sudo sh -c".

CAVEATS
	- need to check if binpkg is in local repo.
	- need to add support to specify alternative rootdir.
	- need to add support to specify system repos.
2014-04-09 16:42:07 +02:00
Juan RP 576b865cf4 Update for xbps>=0.35 which contains xbps-uchroot.
That means that the Makefile and xbps-src generated files are not required
anymore, and the xbps-src script can be used as is.

Bump xbps requirement to 0.35 and enable XBPS_INSTALL_ARGS by default.
2014-04-01 11:29:21 +02:00
Juan RP 0b95cb8f5d Merge xbps-src code to make it usable in a standalone mode.
The new xbps-src configuration file is `etc/conf` where you can
add your local overrides from defaults set via `etc/defaults.conf`.

To use this xbps-src, run these steps:

	$ make
	$ sudo make setup (to make chroot helper setgid)
	$ ./xbps-src ...
2014-03-22 12:31:42 +01:00