Commit Graph

276 Commits

Author SHA1 Message Date
Juan RP 55863abdd2 xbps-src: do not sync xbps repos in chroot mode.
If XBPS_CHROOT_CMD == uchroot with overlayfs (-O), the temporary masterdir
will be removed completely after synchronizing remote repositories, and
later on, when the build starts the repos are unsynchronized.

So do the sync on the real masterdir before entering the chroot.
2015-07-12 08:24:04 +02:00
Juan RP e6b34ca994 xbps-src: set XBPS_MAKEJOBS to 1 if unset or disable_parallel_build. 2015-07-10 10:07:02 +02:00
Juan RP e3542fac95 xbps-src: remove_pkg_autodeps: print errval and debug output on error. 2015-07-09 11:40:52 +02:00
jbu b28b004505 purge_distfiles.sh: ignore msg_error()
When sourcing templates to get $checksum there are templates
calling msg_error(). This is not relevant for this function,
thus define a local dummy msg_error() to ignore these cases.
2015-07-07 05:37:38 +02:00
jbu 919afe94fc xbps-src: Add purge-distfiles command
Closes #1970
2015-07-06 10:02:25 +02:00
jbu b30cbd9870 xbps-src: implement a by_sha256 hash cache 2015-07-04 11:18:46 +02: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 1ffba0ae71 xbps-src: fix regression with the proot chroot-style. 2015-06-03 20:12:49 +02:00
Juan RP 3493f3c229 xbps-src: requires xbps>=0.45 now. 2015-06-03 11:32:47 +02:00
Juan RP 28b44acac9 xbps-src/cross: reconfigure base-directories too. 2015-06-03 10:55:37 +02:00
Juan RP 428c34d1f0 xbps-src: reconfigure base-files not base-directories. 2015-06-03 10:44:58 +02:00
Juan RP b1d2d425b4 xbps-src: remove stupid workaround to sleep for a second.
This was added to make sure pkg file metadata contains a different mtime
(in seconds precision), but building multiple pkgs in less than a second
will be really strange.
2015-05-23 09:52:19 +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 47f46229b8 xbps-src/cross: create sysroot/include symlink.
The cross compiler seems to need it to compile C++ code (wtf).
2015-05-01 12:34:17 +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 90771d92f5 xbps-src: only print real source pkgs in show-build-deps. 2015-04-26 08:32:46 +02:00
Juan RP 3caa64b981 xbps-src: create XBPS_WRAPPERDIR in the upperdir with overlayfs. 2015-04-24 11:02:37 +02:00
Juan RP d07d3a72c9 xbps-src: new target: show-avail and returns 0 if pkg can be built. 2015-04-16 08:38:32 +02:00
Juan RP 313cdf6ee6 xbps-src: force reconfiguration of base-directories in sysroot.
... otherwise some required symlinks in sysroot aren't created, and this
seems to be required when cross compiling for i686.
2015-04-15 12:23:07 +02:00
Juan RP ba814ab5c7 xbps-src/build.sh: error out if installing cross pkgs fails for some reason. 2015-04-15 11:38:23 +02:00
Juan RP 0b2a7f39f3 xbps-src/cross: install cross-vpkg-dummy as manual, to not autoremove it. 2015-04-14 11:01:11 +02:00
Juan RP 14849336aa xbps-src/cross: force installation of cross pkgs just in case. 2015-04-14 10:47:25 +02:00
Juan RP 9a7350c3da xbps-src/cross: return early if cross pkgs are already installed. 2015-04-14 10:42:47 +02:00
Juan RP ad71cffe79 xbps-src/bulk: silence output if there are no pkgs to build. 2015-04-11 08:40:46 +02:00
Juan RP e2e7b10b0d xbps-src: repair bootstrap-update in the !chroot case. 2015-04-09 19:45:59 +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 8cd7f1a901 Revert "xbps-src: Set the MAKEFLAGS environment variable"
This reverts commit d803775b3d.

This breaks all pkgs that exec make directly without ${makejobs}
(which should be built as -j1) and makes installation also parallel,
which we do not want.

We'll probably resurrect this in a certain future.
2015-04-09 09:21:53 +02:00
Juan RP 3964b12de6 Merge pull request #1214 from nmeum/makeflags
xbps-src: Set the MAKEFLAGS environment variable
2015-04-09 07:51:46 +02:00
Sören Tempel d803775b3d xbps-src: Set the MAKEFLAGS environment variable
This ensures that packages with custom build functions also use our
provided MAKEFLAGS. Without this commit it was necessary to always
append the "${makejobs}" variable manually to make. For compatibility
reasons that is still possible but should probably be removed in the
future by making "makejobs" a local variable.
2015-04-08 19:44:06 +02:00
Juan RP 6d465e0a43 xbps-src/bulk: simplify and make the toposort work again. 2015-04-07 12:34:23 +02:00
Juan RP 66f6780b31 xbps-src: show-build-deps: only return pkgnames.
We do not care about its version really.
2015-04-07 12:33:42 +02:00
Juan RP efbb1f4a8a xbps-src: make -a target work with show-repo-updates/update-bulk. 2015-04-07 12:18:26 +02:00
Juan RP 48548f1983 xbps-src/build.sh: sleep 1 second while running do-pkg.sh.
This will ensure that binpkg files do not have recorded the same mtime,
which is required in xbps to detect obsolete files properly.
2015-04-02 09:09:12 +02:00
Juan RP 7a59746763 xbps-src/build.sh: pass $sourcepkg not subpkgname to the helpers.
Close #1243
2015-03-30 20:24:11 +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 b43411d4d2 xbps-src: show-build-deps: sort -u the results. 2015-03-26 04:18:42 +01:00
Juan RP 439807df63 xbps-src: setup_pkg: re-read conf file to propagate vars to build.sh. 2015-03-23 18:02:45 +01:00
Juan RP 451411ad21 xbps-src: set_build_options: read conf file for XBPS_PKG_OPTIONS.
This makes XBPS_PKG_OPTIONS* settings work via build.sh. Thanks chris2.
2015-03-23 17:57:23 +01:00
Juan RP a86b30ba05 xbps-src: fix remaining issues with -N and -a. 2015-03-23 16:05:43 +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
Christian Neukirchen ca81f8e7f1 xbps-src/shutils/common.sh: check $version, - and _ are now forbidden. 2015-03-20 19:06:18 +01:00
Juan RP 55ce6f836f xbps-src/bulk: do not use tac(1) in the tsort result, it's inverted otherwise. 2015-03-20 14:45:06 +01:00
Juan RP ce859b4188 xbps-src: run_func on error must return 1 not 2. 2015-03-20 09:17:40 +01:00
Juan RP 95ca05e6e6 xbps-src: check_pkg_arch now exits with errcode 2. 2015-03-19 10:26:19 +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
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 aab0fe7ed3 xbps-src/bulk: declare some more local vars. 2015-03-17 11:04:09 +01:00
Juan RP 43258cc391 xbps-src: remove autodeps before running the phase unless -C is set.
This should avoid unexpected issues due to building pkgs with dependencies
installed by previous builds.
2015-03-15 10:34:13 +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 d8f69bde78 xbps-src: repair 'update-bulk' target (close #1121). 2015-03-14 09:47:56 +01:00
Juan RP a8962ace18 xbps-src/build.sh: only skip building/installing deps for target pkg with -N. 2015-03-14 09:24:35 +01:00
Juan RP f2883afc1b xbps-src/build.sh: fix xbps-src-doinstall() when pkg is a subpkg.
Close #1120
2015-03-14 09:06:44 +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 891b7e661e xbps-src: move xbps repo conf files to etc/. 2015-03-13 09:53:30 +01:00
Juan RP 5c177c7b67 Require xbps>=0.44 for xbps-uunshare(8) to simplify code. 2015-03-12 18:56:14 +01:00
Juan RP d694d022d1 xbps-src: use xbps-uunshare(8) to sync remote cross repos too. 2015-03-12 18:49:21 +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 31b544020f xbps-src/libexec: remove double slash from shebang. 2015-03-11 08:28:13 +01:00
Juan RP 87d91f0594 xbps-src: fix previous. 2015-03-09 09:52:35 +01:00
Juan RP c74c204a6e xbps-src: do not sync repodata with -N. 2015-03-09 09:50:09 +01:00
Juan RP b7063fa1bc xbps-src: fix previous. 2015-03-05 21:47:41 +01:00
Juan RP 3d21df48e7 xbps-src: use xbps-uunshare(8) if it's available. 2015-03-05 21:44:22 +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 d2f127d7ab xbps-src: create log files in $XBPS_STATEDIR while installing bdeps. 2015-03-03 10:45:34 +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 cda175e0d6 xbps-src: make show-build-deps return err when arch is not supported. 2015-02-28 02:38:00 +01:00
Juan RP 429df59e2a xbps-src: show-build-deps: fix an issue with subpkgs. 2015-02-28 01:52:23 +01:00
Juan RP 4130cd3e8f xbps-src: show-build-deps: ignore virtual rdeps completely. 2015-02-28 01:46:38 +01:00
Juan RP 3107408b9e xbps-src: show-build-deps: convert virtual rdeps. 2015-02-28 01:36:22 +01:00
Juan RP 98ae47f3eb xbps-src: show-build-deps: also print rdeps and drop subpkgs. 2015-02-28 00:13:42 +01:00
Juan RP ad74cbe1b4 xbps-src: show-build-deps: sanitize deps and use etc/virtual. 2015-02-27 23:48:14 +01:00
Juan RP fcf24b660f xbps-src: added -t option to create a temporary masterdir.
This temporary masterdir contains hardlinks of files stored in a real
masterdir, and once the target has finished will be removed.

Could be useful to create fully up to date and immutable real masterdirs
that are used as base for the temporary masterdirs.
2015-02-27 23:00:55 +01:00
Juan RP d3811ca891 xbps-src: show-build-deps: take only_for_archs into account.
Silently error out if arch is not supported... my new bulk build code
expects ERROR if pkg cannot be built for the target arch.
2015-02-27 19:32:54 +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
Alessio Sergi f417430e41 xbps-src: update_check: set default url to PYPI for Python packages 2015-02-10 12:15:10 +01:00
Eivind Uggedal cc8762d3fb update_check.sh: escape gnome package names. 2015-01-21 18:32:25 +00:00
Eivind Uggedal 3b7a76512d update_check.sh: use external update file for overrides 2015-01-15 11:16:30 +00:00
Juan RP aed0f3ee0e xbps-src: fix hooks that are expected to be used in subpkgs. 2015-01-14 14:23:10 +01:00
Juan RP 5f63a3cf4f xbps-src: run pre-install hooks for subpkgs too.
The pre-install hooks are run before pkg_install().
2015-01-14 11:31:52 +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 29b171a284 xbps-src: return early in the bootstrap target when all deps are built.
This fixes the last issue for the 'bootstrap' target... this requires
xbps>=0.43.1 to work properly.
2015-01-05 17:11:23 +01:00
Juan RP 6100f83bcf Revert "xbps-src: simplify chroot_handler usage."
This reverts commit 0e0eb9001a.

Introduces new issues... revert until it's fixed properly.
2015-01-04 12:14:14 +01:00
Juan RP 0e0eb9001a xbps-src: simplify chroot_handler usage. 2015-01-04 11:41:22 +01:00
Juan RP 88d6f0a9f5 xbps-src: add all subrepos if an alternate repo is set. 2014-12-30 08:23:42 +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 57dc040df6 xbps-src: create required dir for xbps-src.conf. 2014-12-22 11:28:52 +01:00
Juan RP 2e78e7fdcf xbps-src: create xbps.d/xbps.conf with our settings. 2014-12-22 11:24:58 +01:00