distro: guile-2.0: Propagate libunistring and Libtool.
* distro/base.scm (guile-2.0): Propagate libunistring and Libtool.
distro: guile-1.8: Propagate GMP and Libtool.
* distro/base.scm (guile-1.8): Propagate GMP and Libtool.
Add `package-transitive-inputs'; use it to honor propagated inputs.
* guix/packages.scm (package-transitive-inputs): New procedure.
(package-derivation): Use it to compute INPUTS.
* tests/packages.scm (dummy-package): New macro.
("package-transitive-inputs"): New test.
distro: Add GNU Guile 2.0, released today!
* distro/base.scm (guile-2.0): New variable.
build-system/gnu: Set $PKG_CONFIG_PATH.
* guix/build/gnu-build-system.scm (set-paths): Add `PKG_CONFIG_PATH'.
distro: Add Lout.
* distro/base.scm (lout): New variable.
build-system/gnu: Add `tests?' parameter.
* guix/build-system/gnu.scm (gnu-build): Add `tests?' parameter.
[builder]: Inherit it.
utils: Have `substitute' restore the file's permission bits.
* guix/build/utils.scm (substitute): Restore FILE's mode before renaming
TEMPLATE.
utils: Change `substitute' and `substitute*' to work with several regexps.
* guix/build/utils.scm (substitute): Change to accept a `pattern+procs'
parameter. Iterate over it.
(substitute*): Adjust accordingly.
* distro/base.scm (guile-1.8): Adjust accordingly.
distro: gawk: Disable parallel tests.
* distro/base.scm (gawk): Explicitly disable parallel tests.
guix-build: Add `--cores'.
* guix-build.in (leave): New macro, formerly in `guix-build'.
(show-help): Document `--cores'.
(%options): Add `--cores'.
(guix-build): Remove `leave' macro from here. Pass the `cores' option
value to `set-build-options'.
build-system/gnu: Support parallel builds and tests.
* guix/build/gnu-build-system.scm (build): Add `parallel-build?'
parameter; honor it and $NIX_BUILD_CORES.
(check): Add `parallel-tests?' parameter; likewise.
* guix/build-system/gnu.scm (gnu-build): Add `parallel-build?' and
`parallel-tests?' parameters.
[builder]: Inherit them.
utils: Introduce `substitute*', for easier sed-like syntax.
* guix/build/utils.scm (let-matches, substitute*): New macros.
* distro/base.scm (guile-1.8): Use `substitute*' instead of
`substitute'. Remove the #:modules argument.
distro: Add GNU Guile 1.8.
* distro/base.scm (guile-1.8): New variable.
* distro/guile-1.8-cpp-4.5.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
utils: Make sure `substitute' writes all its output.
* guix/build/utils.scm (substitute): Close OUT before renaming it.
gnu-build-system: Dump the values of environment variables.
* guix/build/gnu-build-system.scm (set-paths): Dump the value of
environment variables in the `environment-variables' files, similar to
what Nixpkgs does.
packages: Allow inputs that are local files.
* guix/packages.scm (package-derivation): Add to the store inputs that
are local files.
build-system/gnu: Add a `patch' phase.
* guix/build/gnu-build-system.scm (patch): New procedure.
(%standard-phases): Add `patch'.
* guix/build-system/gnu.scm (gnu-build): Add `patches' and `patch-flags'
parameters. Pass them on.
build-system/gnu: Make the builder's module list a parameter.
* guix/build-system/gnu.scm (gnu-build): Add a `modules' keyword
parameter; use it.
Add builder-side utilities for phases, stream editing, & co.
* guix/build/utils.scm (with-directory-excursion): New macro.
(alist-cons-before, alist-cons-after, alist-replace): New procedures.
(substitute): New procedure.
* tests/build-utils.scm: New file.
* Makefile.am (TESTS): Add `tests/build-utils.scm'.