Commit Graph

472 Commits

Author SHA1 Message Date
Jürgen Buchmüller 63db848413 build_dependencies: print $build_style, if any
To make it more obvious what is going to happen next print the
build_style, if set, when emitting the "building ..." messages.
2018-01-16 05:31:32 +01:00
Jürgen Buchmüller 6c320e98ba ruby: retry to build for *-musl
chroot: copy UTC as localtime as fallback if /etc/localtime does not exist.
It looks as if ruby's rdoc was failing in a function using /etc/localtime.
2017-12-16 17:55:18 +01:00
Michael Gehring e40b057c09 common/xbps-src/shutils/show.sh: don't expand conf_files patterns
Fixes #9628
2017-11-30 10:46:41 +00:00
Enno Boland f5239598d5
common/xbps-src: change directory before each phase.
fixes #9313.
2017-11-29 15:02:10 +01:00
Michael Gehring 75d5240c5b xbps-src: evaluate build_options before setting default flags
Fixes #9454
2017-11-24 07:48:24 +01:00
Michael Gehring 9ffc64e20c common: drop 0/no logic from XBPS_{CHECK_PKGS,BUILD_ONLY_ONE_PKG}
use the common convention as described in etc/defaults.conf
2017-11-20 21:12:54 +01:00
Michael Gehring 565de75a06 xbps-src: flip logic of -Q 2017-11-20 13:02:30 +00:00
Enno Boland ba84655a13 common/libexec: remove redundant pre/do/post preparation code
This pullrequest removes redundant codepaths in
xbps-src-do{build,configure,install}.sh and joins the code in the
run_step function. This causes slightly different behavior to
do_install:
Do install will chdir to wrksrc only _before_ the first step. The
current behavior is that pre_install will run without a chdir, do_ and
post_ is runned with a chdir. This is a subtle but breaking change and
may cause some templates to break at install phase.
2017-11-18 09:44:47 +01:00
Duncan Overbruck 570842f4a5 xbps-src: add etc/xbps.conf for extra xbps options (#8304) 2017-10-19 11:38:14 +02:00
Toyam Cox bfbfbf2cab xbps-src: use -1 to trigger errors on missing deps 2017-09-04 16:34:18 -04:00
Toyam Cox 41cadcf1d6 xbps-src: now pass -q for quiet, -Q for no-check
Previously -q was passed to sub processes. When I changed
-q's meaning, this made everything quiet. -Q is now passed
for those instances, and -q is passed for quieting.
2017-08-29 15:18:48 -04:00
Toyam Cox debdd551f4 xbps-src: add quiet mode 2017-08-29 13:23:54 -04:00
Toyam Cox 04f489e839 xbps-src: expand usage of ignore-problems in reading pkgs 2017-08-29 13:23:54 -04:00
Toyam Cox 5a7e73b89a xbps-src: add informative run mode 2017-08-29 13:23:54 -04:00
Florian Wagner f2c0f7885e Add and document R-cran build style; support CRAN in update-check. 2017-06-08 13:32:40 +02:00
Enno Boland 33c1040159 Merge branch 'master' into check 2017-06-05 14:58:57 +02:00
Duncaen c32fb6e0d1 xbps-src: portability fixes 2017-06-05 01:48:19 +02:00
Duncaen 13b96bc7cf xbps-src: Revert "add -- to env for portability"
This reverts commit a01afa1d56.
2017-06-03 22:57:51 +02:00
Duncaen a01afa1d56 xbps-src: add -- to env for portability 2017-06-03 20:45:43 +02:00
Duncaen 102fc6f99f xbps-src: portability fixes 2017-05-24 20:02:46 +02:00
Jürgen Buchmüller 5a11957d14 Merge branch 'master' into check 2017-05-02 09:18:52 +02:00
Jürgen Buchmüller 272114cd05 xbps-src: trying to fix FFLAGS construction
This still isn't perfect. When the common/xbps-src/shutils/chroot.sh
function chroot_init() is called, the value for $XBPS_FFLAGS, which is
defined in common/build-profiles/bootstrap.sh, is empty.

Put the immediate value into the generated /etc/xbps/xbps-src.conf
file until someone finds out where passing the value of $XBPS_FFLAGS
throughout the scripts is missing.
2017-03-08 17:36:22 +01:00
Jürgen Buchmüller f7558c16aa common: lost the FCC to FC change somehow
Should now be conforming to GNU make.
2017-03-08 16:06:54 +01:00
Jürgen Buchmüller 60603dd0a5 common: rename FCC to FC and introduce FFLAGS 2017-03-08 16:04:42 +01:00
Jürgen Buchmüller 6d0d142d15 xbps-src common.sh: add FCC for gfortran
Introduce an environment variable `FCC` for fortran, just as CC,
CXX etc. are defined for the other compilers.

It is set to `${XBPS_CROSS_TRIPLET}-gfortran` when cross compiling, or
to just `gfortran` when building for the native architecture.
Use just "$FCC" now when specifying the fortran compiler in a template.
2017-03-08 15:18:14 +01: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
Hadrian Węgrzynowski 86a03ae71a Fix handling of package options in packages with '+' character in name. (#5385)
Substitute '+' character with '_', because eval treats '+' character
as not a part of variable name.
2016-12-24 09:43:30 +01:00
Juergen Buchmueller 2bbaddd4bb common.sh: unset cross environment variables
Closes #5067
2016-10-28 14:47:07 +02:00
Juergen Buchmueller 958b460965 common/xbps-src/shutils/common.sh XBPS_GCC_VER...
Export the environment variables XBPS_GCC_VERSION*
2016-10-26 07:24:00 +02:00
Toyam Cox 7c9d1f61b0 xbps-src: allow show of broken pkgs 2016-10-20 19:49:57 -04:00
Jürgen Buchmüller cb5e8ef57a common/xbps-src/shutils/common.sh: add cross env
It seems that some (many?) projects rely on the environment defining
compilers, tools and flags by specific XYZ_host and XYZ_target variables.

When cross compiling, define these environment variables.

This enables e.g. qt5/qtwebengine build to succeed. Specificially ninja
relies on these variables when cross compiling.
2016-08-08 21:56:54 +02:00
Alessio Sergi da4d9b7f23 xbps-src: PYPI_SITE: use files.pythonhosted.org for less redirections 2016-05-13 17:35:35 +02:00
Juan RP 326c989c7c xbps-src/show: resolve virtual dependencies correctly. 2016-04-27 20:56:55 +02: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 5bfd84163b common/xbps-src/shutils/purge_distfiles.sh: does not need to executable. 2016-04-27 16:56:17 +02:00
Juan RP b722ed3c8b cross-profiles: simplify and rename some of them to match XBPS_TARGET_MACHINE.
- XBPS_TARGET_ARCH var renamed to XBPS_TARGET_MACHINE (gets rid of an extra var).
- Renamed cross profiles to match XBPS_TARGET_MACHINE.
- Added symlinks to keep compatibility with old profiles.
2016-04-27 16:47:05 +02:00
Alessio Sergi 8fc7bfb7d2 xbps-src: update-check: update PyPI URL here as well 2016-04-25 17:52:51 +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
Enno Boland 096aac3603 xbps-src: add consistency check
`xbps-src consistency-check` iterates over all templates and looks for
potentially broken dependencies.
2016-03-22 00:36:30 +01:00
Michael Gehring a038eaba9a common/xbps-src: make show <pkg> exit 0 on success 2016-03-08 10:24:54 +01:00
Enno Boland b5e49c48e7 common: replace XBPS_COMMIT_TIMESTAMP by SOURCE_DATE_EPOCH
This way we are compatible to the Debians proposal. See [1].

[1] https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html
2016-03-01 18:27:49 +01:00
Enno Boland 3c04642877 environment/build: overwrite __DATE__, __TIME__, and __TIMESTAMP__ macros.
This commit overwrites timestamps that depend on timestamps with the
commit date of a package.
2016-03-01 15:33:09 +01:00
Christian Neukirchen ffdc05018a xbps-src/shutils/cross.sh: ensure lib -> usr/lib in sysroot. 2016-01-20 19:38:04 +01:00
Juan RP faf97ef55a xbps-src: setup_pkg() do not overwrite env while re-reading conf. 2015-12-12 10:55:04 +01:00
Juan RP c9dede4e23 xbps-src: force glibc locale generation on musl hosts.
localedef is only available with glibc, so that defer locale creation
once the chroot is ready.

This fixes installing bootstrap glibc pkgs on musl hosts.
2015-12-12 07:35:30 +01:00
Jürgen Buchmüller 6d90efebab purge-distfiles: fix rmdir parameter 2015-12-03 18:24:36 +01:00
Juan RP c373ae50d4 xbps-src: get rid of 'broken_as_needed'; not used anymore. 2015-11-28 09:24:01 +01:00
Juan RP dcdaa283b7 xbps-src: make LDFLAGS in templates override global defs. 2015-11-28 09:00:14 +01:00
Jürgen Buchmüller 6a25cf1cf2 common.sh: set BUILD_XXXFLAGS as autoconf defaults
Some autotool files (configure.ac) expect host build flags to be
defined as BUILD_CFLAGS, BUILD_CXXFLAGS, BUILD_CPPFLAGS and
BUILD_LDFLAGS. Especially these files tend to default to
LDFLAGS for BUILD_LDFLAGS, which makes host utilities built
with these flags fail with buildpie=yes because of differing
compiler and linker options.

One example is libatasmart where this patch fixes the build.
2015-11-20 20:57:23 +01:00
Juan RP c2c225aa42 xbps-src: make 'show-build-deps' canonicalize 32bit pkgs. 2015-11-19 08:32:47 +01:00
Enno Boland c7f2f9840f common/xbps-src: remove force_debug_pkgs variable 2015-11-17 15:36:51 +01:00
Juan RP c759f096fa xbps-src: give more info for 'restricted' pkgs. 2015-11-14 11:55:04 +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 b479b9a7ba xbps-src: bulk: only abort if rval is 1, ignore broken/skipped pkgs.
Issue #2804
2015-10-22 18:20:09 +02:00
Jürgen Buchmüller 482acee672 purge_distfiles.sh: remove empty directories 2015-09-23 15:12:55 +02:00
Juan RP a9b66c178a xbps-src: set LC_COLLATE=C in environment as suggested by @chneukirchen.
This is enough to let ca-certificates build again.

Close #2513
2015-09-15 08:15:13 +02:00
Juan RP bcdacb66a0 xbps-src: replace basename(1) with ${var##*/}.
Reduce number of fork+exec due to using a subshell to execute basename(1).
2015-09-11 07:55:40 +02:00
Jürgen Buchmüller 7aa6261c63 chroot.sh: set LC_ALL=C in the chroot 2015-09-10 13:48:47 +02:00
Jürgen Buchmüller 1c4a971d74 purge-distfile: improve template scan speed 2015-09-05 07:41:58 +02:00
Jürgen Buchmüller f5c8a5581e Merge pull request #2438 from pullmoll/setup_pkg
setup_pkg(): fix check for pkgname-32bit + update gcc-multilib
2015-09-03 16:03:44 +02:00
Jürgen Buchmüller 0c7cfd6abe setup_pkg(): fix check for pkgname-32bit
+ Also update gcc-multilib to gcc-4.9.3

Trying to build `gcc-multilib` failed because `glibc-32bit`
has no separate `srcpkg/glibc-32bit/template`, but is a
result of building `glibc` for target arch `i686`.

For gcc-4.9.3 to build a patch is required that gets us rid
of strange errors when including /usr/include/bits/stdio2.h
2015-09-03 12:26:13 +02:00
Juan RP 22c9a81810 xbps-src: set $SHELL in the chroot target.
... otherwise it's set to /bin/xbps-shell and might give unexpected results
with packages that expect something else.

Suggested by @chris2.
2015-09-03 07:36:50 +02:00
Juan RP 4dfaf60651 xbps-src: do not remove masterdir/tmp before entering chroot.
There's no reason to remove this on each iteration.
This is to make @chris2 happy.
2015-09-02 10:08:22 +02:00
Juan RP cef388f07b xbps-src: introduce a new target: "sort-dependencies".
This expects a variable argument list with package names that will be
returned to stdout topologically sorted.

$ ./xbps-src sort-dependencies libarchive-devel liblzma-devel libxbps zlib-devel bzip2-devel
bzip2
xz
zlib
libarchive
xbps
2015-08-16 10:47:35 +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
jbu ac844019f4 purge_distfile.sh: Print info if percent changes 2015-07-20 15:25:21 +02:00
Juan RP 0ce38c4c74 xbps-src: make sure XBPS_WRAPPERDIR is only created in required cases.
- When building a bootstrap pkg and the chroot is not ready (bootstrap).
- When building a pkg within the chroot.
2015-07-12 10:13:43 +02:00
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 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 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 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 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 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 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
Juan RP b77c7a6836 xbps-src: update for xbps-0.42 and bump required version. 2014-12-22 11:15:44 +01:00
Juan RP bf104ce0c4 xbps-src: no need to remove xbps main repo file; it's disabled already. 2014-12-13 10:01:33 +01:00
Juan RP 5929c2458a xbps-src: remove pkg statedir unless -C is set. 2014-12-13 09:42:11 +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 a5193023b9 xbps-src: quote PATH while entering the chroot.
... otherwise if PATH contains whitespaces you could be fucked up.
2014-12-08 18:27:19 +01:00
Juan RP 2a7a3209b8 xbps-src: make the 'pkg' target work after 'install'.
- Create state files in $wrksrc for $sourcepkg and $subpackages
to see if the phase needs to be re-run.
2014-12-06 13:45:49 +01:00
Juan RP efc17d8c22 xbps-src: accept subpkgname as target pkg for the install target.
Close #686
2014-12-06 12:33:30 +01:00
Eivind Uggedal 1a3b512069 update_check.sh: support for kernels 2014-11-30 19:29:46 +00:00
Enno Boland b7c7cc67fa xbps-src: update-check reports all newer versions one gnome sites. 2014-11-29 17:59:18 +01:00
Eivind Uggedal 154c5cd605 update_check.sh: support for update_version (upstream version). 2014-11-24 14:57:41 +00:00
Eivind Uggedal 8525392a11 update_check.sh: bitbucket.org support 2014-11-24 14:44:09 +00: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 dc9144500c xbps-src: get rid of CHROOT_CMD and use xbps-uchroot directly. 2014-11-12 09:52:17 +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 8d9f0ed815 xbps-src: bulk: setup srcpkg vars before reading target template. 2014-11-11 10:41:20 +01:00
Juan RP d982c558f2 xbps-src: correct test behaviour for build-profiles. 2014-11-10 12:30:07 +01:00
Juan RP 67c854fc64 xbps-src: chroot: do nothing if we are already in the chroot. 2014-11-10 11:57:46 +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 26682d2b86 Revert "Revert "xbps-src: return early if masterdir is not ready for chroot ops.""
This reverts commit c6cec1010f.
2014-11-08 11:07:40 +01:00
Enno Boland c6cec1010f Revert "xbps-src: return early if masterdir is not ready for chroot ops."
This reverts commit d9943a330d.
2014-11-08 11:02:38 +01:00
Juan RP d9943a330d xbps-src: return early if masterdir is not ready for chroot ops. 2014-11-08 10:52:38 +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
Eivind Uggedal aeb7baef31 Revert "update_check.sh: do not check packages without distfiles"
This reverts commit e67c2718f2.
2014-11-03 12:18:28 +00:00
Eivind Uggedal e67c2718f2 update_check.sh: do not check packages without distfiles 2014-11-03 11:45:03 +00:00
Eivind Uggedal 451b5d3bcc update_check.sh: reset regex before each site
Fixes a bug where python projects from PYPI which have a github
homepage gets the github regex when checking PYPI.
2014-11-03 11:37:08 +00:00
Eivind Uggedal b7219e9407 update_check.sh: fix globals 2014-11-03 11:37:08 +00:00
Christian Neukirchen 637dcf9472 update_check.sh: scan tags page instead of using the API. 2014-11-02 16:31:17 +01:00
Christian Neukirchen 01646ec643 update_check.sh: escape pkgname in default regexp. 2014-11-02 15:54:08 +01:00
Christian Neukirchen ebbb33b519 update_check.sh: ignore SSL errors. 2014-11-02 15:45:57 +01:00
Christian Neukirchen 85ea2492c3 update_check.sh: regard dashes as dots for version comparison. 2014-11-01 20:37:17 +01:00
Christian Neukirchen bcaeae6d24 update_check.sh: extract launchpad project name from URL instead of guessing it. 2014-11-01 19:43:55 +01:00
Christian Neukirchen c36f464f4d update_check.sh: extract sourceforge project name from URL instead of guessing it. 2014-11-01 19:04:21 +01:00
Juan RP 07dd4ad339 xbps-src: update-check: avoid bashism, requested by @chneukirchen. 2014-11-01 15:23:51 +01:00
Juan RP 1e445fe096 xbps-src: update-check: return if curl not available; simplify output for match. 2014-10-31 21:24:07 +01:00
Christian Neukirchen 60ac25fd1f xbps-src: add update-check. 2014-10-31 20:43:35 +01:00
Juan RP cc45da3f6d xbps-src: indent enabled build options correctly too. 2014-10-30 07:09:33 +01:00
Juan RP 3f31573ed5 xbps-src: align show options correctly. 2014-10-28 10:15:58 +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 4545aca5e3 xbps-src: repair bootstrap installation. 2014-10-18 16:45:16 +02:00
Juan RP 033c4ed0f5 xbps-src: remove WIP repo delta support.
- it never worked correctly
- it's WIP and looks like it will be stalled forever
- won't be necessary anymore with xbps-0.42
2014-10-14 19:19:07 +02:00
Juan RP 6928b52a4e xbps-src: full switch to void-packages. 2014-10-11 11:15:02 +02:00
Juan RP 4b6129eeb7 xbps-src: chroot: use /void-packages. 2014-10-11 11:11:09 +02:00
Juan RP 77d1837155 xbps-src: misc tweaks for zap and use void-packages too in chroot ops. 2014-10-11 11:02:57 +02:00
Juan RP 774685aaa2 xbps-src: create the void-packages symlink unconditionally. 2014-09-28 08:19:32 +02: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 3efa28ecbf xbps-src: create a void-packages symlink for xbps>=0.41. 2014-09-28 07:25:09 +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 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 dbde6e849e Revert "Revert "xbps-src: when all deps have been processed exit directly.""
This reverts commit ad79b8e7e2.
2014-09-21 11:25:38 +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 ad79b8e7e2 Revert "xbps-src: when all deps have been processed exit directly."
This reverts commit 9bf1ba5f88.

I still think the behaviour I observed was related to something else.
2014-09-05 12:57:15 +02:00
Juan RP 13c2ca3bd2 xbps-src: reorganize code in more sections. 2014-09-05 11:10:07 +02:00
Juan RP 9bf1ba5f88 xbps-src: when all deps have been processed exit directly. 2014-08-30 20:45:57 +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 22e0c33b39 xbps-src: chroot: do not copy /etc/services; we use iana-etc now. 2014-08-25 15:30:57 +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 7e9f329643 xbps-src: remove_pkg: exit early if destdir does not exist. 2014-08-21 12:16:53 +02:00
Juan RP 108a6d3fac xbps-src: introduce "nocross" to not allow cross compilation. 2014-08-21 12:07:44 +02:00
Juan RP 954e1aff05 xbps-src/chroot: disable xbps/repo.d/00-main.conf with a symlink; rather than removing the file. 2014-08-21 11:42:51 +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 b0aedbb03a xbps-src: added -D to generate repository binary deltas; disabled for now. 2014-08-14 12:28:27 +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 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 67358807ea xbps-src: chroot: remove xbps conf remote repos with -N. 2014-07-14 12:28:08 +02:00
Juan RP 758ea97981 xbps-src: fix -o in chroot (reported by al3hex). 2014-07-12 15:56:40 +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 4d55b696c3 xbps-src: chroot_init: do not propagate XBPS_MASTERDIR to the generated xbps-src.conf.
Fixes Ypnose issue where he has XBPS_MASTERDIR set in `etc/conf`.
2014-07-05 16:12:14 +02:00
Juan RP aee9d60bec xbps-src: document xbps-install(8) ENXIO rval. 2014-07-02 11:09:41 +02:00
Juan RP 71f0a912ef xbps-src: chroot.sh: XBPS_CONFIG_FILE could be unset, handle it. 2014-07-01 18:47:39 +02:00
Juan RP ff00dc5448 xbps-src: destroy <masterdir>/tmp before entering the chroot. 2014-07-01 15:07:01 +02:00
Juan RP e64f3d8a95 xbps-src: make sure XBPS_CONFIG_FILE is set. 2014-07-01 13:15:52 +02:00
Juan RP c06d1e4d85 xbps-src: partial revert of 871d2fa87.
We can't pass XBPS_OPTIONS to xbps-uchroot(8) as is.
2014-07-01 11:04:34 +02:00
Juan RP 871d2fa873 xbps-src: added -G to enable XBPS_USE_GIT_REVS. 2014-07-01 10:33:54 +02:00
Juan RP 67947330cc xbps-src: set XBPS_HOSTDIR correctly for chroot ops. 2014-06-30 12:03:56 +02:00
Juan RP a5e726c4ec xbps-src: copy XBPS_* settings from etc/conf only if the file exists. 2014-06-30 11:52:52 +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 e3246539e7 xbps-src: do not copy x86_64 specific repos to the cross target root. 2014-06-10 09:36:58 +02:00
Juan RP b747269490 xbps-src: make local/remote multilib repos only available on x86_64. 2014-06-10 09:22:18 +02:00