Commit Graph

31 Commits

Author SHA1 Message Date
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
d2bac19750 xbps-src: re-introduce etc/virtual.
The `etc/virtual` file declares the default package to be built for
virtual dependencies declared as "virtual?foo" in $depends.

Before this change, the run-time dependency was added as is to the final
binary package but no pkg providing this virtual pkg was built.

With this file we declare the *default* pkg to be built.

NOTE: "virtual?foo" is only applicable to *run* time dependencies, i.e
only those declared in $depends.
2016-04-27 20:16:59 +02:00
Juan RP
d3bc0de1e7 xbps-src: get rid of etc/{defaults.,}virtual.
It wasn't too useful after all and this slowed down the dependency
process marginally.

We don't need this, we can live without this.
2016-03-22 10:39:45 +01:00
Juan RP
d407e18e19 xbps-src: xbps-install(1) can return EAGAIN (11) with pkg conflicts. 2015-10-29 08:48:38 +01:00
Juan RP
d8030e5651 Revert "xbps-src: install dependencies with -U (--unpack-only)."
This reverts commit 8d2226deba.

This breaks all bins that need ca-certificates (curl, wget, git, etc).
2015-06-07 17:02:20 +02:00
Juan RP
8d2226deba xbps-src: install dependencies with -U (--unpack-only).
This should result in a considerable performance improvement, because the
expensive configuration phase of all dependencies is skipped.

Hopefully this does not introduce build issues :-)
2015-06-07 12:06:55 +02:00
Juan RP
94f2e004b4 xbps-src: remove autodeps while building hostdeps too. 2015-05-23 09:52:19 +02:00
Juan RP
4f67c26652 xbps-src: force autodeps cleanup while building dependencies.
Before that change, "./xbps-src -C pkg foo" would not remove dependencies
installed by previous builds required by foo.
2015-05-02 03:40:52 +02:00
Juan RP
11836f56c1 xbps-src: a more meaningful msg when dep cannot be resolved. 2015-04-30 09:09:03 +02:00
Juan RP
c6999a235d xbps-src: if build dependency cannot be resolved, exit with error. 2015-04-30 08:26:12 +02:00
Juan RP
f7cd626a1c xbps-src/build_dependencies: create XBPS_STATEDIR.
This fixes cross compilation of pkgs that depend on itself.
2015-03-28 04:49:18 +01:00
Juan RP
7cffdb2d28 xbps-src/build_dependencies: handle deps provided by vpkgs correctly.
... otherwise deps specified by the cross-vpkg-dummy pkg aren't
taken into account. Assume that version provided by the vpkg is
good enough for building.
2015-03-28 03:22:07 +01:00
Juan RP
1c5f4690e6 xbps-src: always require current srcpkgs version in build dependencies.
That means that version comparators are not supported anymore in
hostmakedepends and makedepends.

This will ensure that a pkg is always built with the same build dependencies
everywhere, if the srcpkgs tree is uptodate.
2015-03-27 10:59:58 +01:00
Juan RP
03ef5b6804 xbps-src: make -N -a <target> work.
If required cross pkgs are not available in xbps repos, those are now built
automagically.
2015-03-23 12:44:37 +01:00
Juan RP
0337b86f43 xbps-src: return 0 on success, 1 on error and 2 on nocross/broken (ignore). 2015-03-19 10:08:02 +01:00
Juan RP
849d22e46d xbps-src: refactor build logic into its own script (build.sh).
The build.sh script is now responsible to handle all the logic to build
a source package and its subpackages, as well as all its required
build dependencies. Thanks to this and subshells, dependencies are now
built into its own child process, creating a process tree that can go
nested as long as your system allows forking and has enough memory :-)

This fixes some issues that have been while building pkgs that have lots
of nested dependencies.
2015-03-14 07:52:29 +01:00
Juan RP
d2f127d7ab xbps-src: create log files in $XBPS_STATEDIR while installing bdeps. 2015-03-03 10:45:34 +01:00
Juan RP
952848ebc3 xbps-src: make sure a target is always passed in to xbps-uhelper. 2014-09-25 12:44:36 +02:00
Juan RP
1ce278f035 xbps-src: drop fakeroot; xbps-create(8) is our friend.
- This should work for almost 90% current packages, as reported by OpenBSD/ports.
- Packages that use install -o <user> -g <group>  will get fixed progressively.
- xbps-create(8) by default sets pkg files as 0:0, if any pkg needs special
  permissions those can be set via INSTALL scripts (for now).
2014-09-24 19:51:17 +02:00
Juan RP
8063adde71 xbps-src: for runtime deps (depends) do not resolve vpkgs.
...otherwise the following would happen:

	- foo depends on musl
	- musl is provided by cross-vpkg-dummy
	- musl is then detected as resolved and it's not built.
2014-09-21 11:44:45 +02:00
Juan RP
75b6468fa0 Introduce a way to override dependencies for all pkgs thru a file.
The `etc/defaults.virtual` file contains the default replacement
for our use cases; at this moment we only use it to use `eudev`
rather than `systemd` for udev.

If `etc/virtual` exists it overrides the settings of `etc/defaults.virtual`.
2014-09-06 12:43:24 +02:00
Juan RP
13c2ca3bd2 xbps-src: reorganize code in more sections. 2014-09-05 11:10:07 +02:00
Juan RP
9d50c2fb05 xbps-src: use "virtual?" keyword to declare virtual runtime dependencies.
The syntax "pkg?vpkg" can be used in hostmakedepends, makedepends and depends;
but the "virtual" keyword can be declared specifically for runtime dependencies
(depends).
2014-08-17 19:21:25 +02:00
Juan RP
0ac14b23ad xbps-src: remove a local var introduced in previous. 2014-08-05 11:52:12 +02:00
Juan RP
1e1136cfac xbps-src: do not skip build deps that are also runtime deps. 2014-08-05 11:51:25 +02:00
Juan RP
933513adaa Improve how run-time deps (aka "depends") are handled in packages.
Run-time dependencies declared via "${depends}" are now also part of the
build process, but those are not installed to the master directory; rather
those dependencies are only checked if a binary package exists in a
local repository to satisfy the required version.

Thanks to @dominikh for idea and suggestions.
2014-07-30 17:58:17 +02:00
Juan RP
aee9d60bec xbps-src: document xbps-install(8) ENXIO rval. 2014-07-02 11:09:41 +02:00
Juan RP
14a5ef4503 xbps-src/build_dependencies.sh: in !CHROOT_READY case don't install pkgs with fakeroot. 2014-05-19 12:40:44 +02:00
Juan RP
e60eb854e6 xbps-src: move check_installed_pkg() to build_dependencies.sh. 2014-04-10 11:58:06 +02:00
Juan RP
1af40eb476 xbps-src: apply sane indentation to all shell code. 2014-04-09 16:40:27 +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