Commit Graph

50 Commits

Author SHA1 Message Date
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
Christian Neukirchen be94bdd70a xbps-src/shutils/common.sh: actively unset disabled build options to override default values. 2015-03-18 16:14:51 +01:00
Juan RP 01afe81aac xbps-src: fix -E to check for the target pkg being registered in repos.
rather than just checking if its binary package is available.
2015-03-15 09:54:52 +01:00
Juan RP 388c3143ac xbps-src: tweak the order of LDFLAGS set in templates.
Rather than appending to the final LDFLAGS, add it to the head,
this way packages that use LDFLAGS="-lfoo" will still work with --as-needed.

This fixes hsetroot build, at least.
2015-03-12 10:46:36 +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 083d139f68 xbps-src: setup_pkg: rename a var for clarity. 2015-03-01 19:29:16 +01:00
Juan RP bdb798fa64 xbps-src: more improvements for -E and -t options.
If both options are set, check first if the binpkg exists before
creating the temporary masterdir, and clean this up properly.
2015-03-01 19:29:16 +01:00
Juan RP 2f524cf66a xbps-src: cleanups for -E and -t.
-E also detect noarch binpkgs.
-t make sure to cleanup the temporary masterdirs.
2015-03-01 19:29:16 +01:00
Juan RP 8ee4a7c257 xbps-src: added -E opt to exit immediately if a binpkg already exists.
With -E if there's a binary package in a local repository for the
target pkg, exit immediately. This will be used by the upcoming xbps-fbulk(8).
2015-02-28 10:29:27 +01:00
Juan RP a4ff74aeb6 xbps-src: make sure to not propagate <subpkg>_package() funcs.
Unset all them before processing a new template. Close #1023
2015-02-25 18:54:00 +01:00
Juan RP df4c861f97 xbps-src: common/{,environment}/build_style -> common/${,environment}/build-style. 2015-02-21 12:13:07 +01:00
Juan RP 3adb1c5c6b xbps-src: add environment/build_style to set env vars for build_styles. 2015-02-21 12:03:48 +01:00
Juan RP f38c8ba711 xbps-src: fix per pkg options declared in etc/conf (close #973). 2015-02-16 10:48:21 +01:00
Juan RP 5a2536f135 xbps-src: really disable --as-needed if broken_as_needed is set.
Also remove some unnecessary stuff from gnu-configure build_style,
because it's done elsewhere.
2015-01-08 11:54:28 +01:00
Juan RP 897b504d6b xbps-src: use bootstrap build-profile for the bootstrap target.
... otherwise the proper compiler flags are being used in the chroot case.
2014-12-24 09:55:29 +01:00
Juan RP 8252c1a719 xbps-src: set defaults to XBPS_C{,XX}FLAGS for the bootstrap target. 2014-12-23 09:24:17 +01:00
Juan RP 4a91db3b95 xbps-src: do not use ${version} to compose XBPS_STATEDIR.
GNU autoconf configure scripts will separate PATH components with `:'
and some pkgs could use this char in its version component.
2014-12-22 12:15:34 +01:00
Juan RP 6e13dcbaff xbps-src: introduce XBPS_STATEDIR to store state files, logs and others.
XBPS_STATEDIR is created in XBPS_BUILDDIR/.xbps-${sourcepkg}-${version}
and contains logs and state files for all phases, as well as wrappers.

We can now inspect the output from all hooks.
2014-12-11 11:02:22 +01:00
Juan RP 8ade12549f xbps-src: rename disable_debug to nodebug, to follow our naming convention. 2014-11-16 11:52:36 +01:00
Juan RP cd9f85c1a5 xbps-src: print $broken if set: it should contain the url to the build log. 2014-11-11 22:10:30 +01:00
Juan RP d189235b2b xbps-src: prefer LDFLAGS from template if set. 2014-11-11 16:39:57 +01:00
Juan RP d982c558f2 xbps-src: correct test behaviour for build-profiles. 2014-11-10 12:30:07 +01:00
Juan RP 88c76fb588 xbps-src: also use build-profiles for bootstrap pkgs. 2014-11-10 11:25:36 +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 457fd7aefb xbps-src: respect XBPS_DEBUG_PKGS for bootstrap pkgs too. 2014-11-05 17:29:58 +01:00
Enno Boland 1a75818e7b common: fix "$repository" = "nonfree" comparision. 2014-11-05 14:55:47 +01:00
Enno Boland 59cc3e0d45 replace nonfree=yes with repository=nonfree.
This way it is possible to set up package specific repositories for
i.e. specific devices.
2014-11-05 14:15:25 +01:00
Juan RP 62e0fb53be xbps-src: export XBPS_WRAPPERDIR for cross builds (could be used for native too). 2014-09-28 08:02:12 +02:00
Juan RP 5202f22f48 xbps-src: define some xxx_FOR_BUILD vars for cross builds. 2014-09-25 16:37:14 +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 13c2ca3bd2 xbps-src: reorganize code in more sections. 2014-09-05 11:10:07 +02:00
Juan RP 6d20b9a05a xbps-src: move vopt_* helpers to environment/setup/options.sh. 2014-08-30 09:10:11 +02:00
Dominik Honnef cdd2ce0da4 add helpers for working with options
Add the helpers vopt_if, vopt_with and vopt_enable that simplify common
option-based operations.

Instead of a bunch of

if [ "$build_option_foo" ]; then
	configure_args+=" --with-foo"
	makedepends+=" foo-devel"
else
	configure_args+=" --without-foo"
fi

one can use

configure_args="... $(vopt_with foo)
makedepends="... $(vopt_if foo foo-devel)"

instead.

We're adding these functions to common/xbps-src/shutils/common.sh but
that might not be the ideal place. I would've preferred
common/helpers/options.sh, but helpers are only available in the
individual phases, not when the template itself gets parsed.
2014-08-30 00:39:46 +02:00
Juan RP e582f328b3 xbps-src: repair and improve the bootstrap target (from scratch).
- There's no need to install rdeps into the masterdir, just base-files.
- There's no need to exit if XBPS_TARGET_PKG == sourcepkg, just return.
- After building base-chroot, install bootstrap binary packages.
2014-08-26 10:33:15 +02:00
Juan RP 3fdd0e180e xbps-src: run pre-pkg hooks in the install to destdir target.
The prepare-32bit hook has been moved to the pre-pkg stage and now
those hooks are executed as part of the install phase. That means that
pre-pkg hooks are now independently run for the subpkgs and the sourcepkg
after the install-destdir phase and pre/do/install hooks.

As bonus, finally correct rdeps can now be collected for the 32bit pkgs
and works for all them, without the need to sort the order of subpkgs!
2014-08-25 22:34:13 +02:00
Juan RP 5290c2a839 xbps-src: change order of how subpackages are processed.
10 Non development packages are processed first lexically.
20 Development packages are processed after 10.

This resolves the issue of 32bit pkg creation with development pkgs
that depend on other non-development subpkgs, and result in wrong
dependencies being propagated to the 32bit development pkgs.
2014-08-25 17:43:08 +02:00
Juan RP 12a3b16e42 Introduce "broken" var to skip building broken packages; make "nocross" not error out.
- broken var simply exits (without error) and skips building a pkg.
- nocross var now simply exits without an error, to make buildbot continue building pkgs.
2014-08-22 16:49:23 +02:00
Juan RP 108a6d3fac xbps-src: introduce "nocross" to not allow cross compilation. 2014-08-21 12:07:44 +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 8cefd7e1cc xbps-src: make sure to re-read template for build options.
The issue was that when building dependencies of target pkg, the
template wasn't re-read with defined build options and those were
completely ignored.
2014-07-24 18:40:52 +02:00
Juan RP c49e01fc15 xbps-src: make it possible to override the subpackages list via ${subpackages}.
This overrides the automatic list generated by xbps-src and it's overridable
to change the processing order of subpackages.
2014-07-23 15:44:36 +02:00
Juan RP e372fcc6e0 xbps-src: fix pkg options parsing in package names containing dashes.
When using per-pkg options via etc/conf, all dashes should be replaced by
underscores, i.e:

	XBPS_PKG_OPTIONS_xorg_server=opt,~opt2
2014-07-19 10:39:22 +02:00
Juan RP 719de35774 xbps-src: print some more details if installation of cross pkgs fails. 2014-07-08 15:09:21 +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 3ba23bbc4f xbps-src/common.sh: recursively remove all cross pkgs. 2014-05-19 16:45:34 +02:00
Juan RP 06ac73239f xbps-src/shutils/common: read build_dependencies.sh for check_installed_pkg(). 2014-04-10 14:54:30 +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 f6f59dec8b xbps-src: make sure that wrksrc is expanded after reading build-options. 2014-03-27 10:06:27 +01: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