utils: Remove stuff committed by error.
This was wrongfully committed in df1fab58.
* guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.
build: Add unit test for the `guix-build' command.
* tests/guix-build.sh: New file.
* Makefile.am (TESTS): Add it.
(LOG_COMPILER): Rename to...
(SCM_LOG_COMPILER): ... this. Move flags to...
(AM_SCM_LOG_FLAGS): ... this.
(TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
Add (guix ui).
* guix/ui.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.
* guix-build.in: Use it.
(_, N_, leave): Remove.
(guix-build): Use `with-error-handling' instead of the `guard' form.
* guix-download.in: Use it.
(_, N_, leave): Remove.
build-system/gnu: Distinguish between imported modules and used modules.
* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules'
keyword parameter. Pass it to `build-expression->derivation'.
release.nix: Use `--no-substitutes' in `distro.hello'.
* release.nix (distro.hello): Use `guix-build --no-substitutes', to
avoid failures due to unavailable stale substitutes on
hydra.nixos.org.
guix-build: Add `--root'.
* guix/store.scm (add-indirect-root): New operation.
* guix-build.in (show-help): Document `--root'.
(%options): Add `--root'.
(guix-build)[register-root]: New procedure. Call it when `--root' is
passed.
Add (guix build union).
* guix/build/union.scm, tests/union.scm: New files.
* Makefile.am (MODULES): Add `guix/build/union.scm'.
(TESTS): Add `tests/union.scm'.
release.nix: Change `distro.hello' to produce something.
* release.nix (distro.hello)[buildPhase]: Tee the log to $out. Add a
`name' attribute; remove `buildInputs' and instead use the full path
to `guix-build'.
distro: Build Bash sequentially.
* distro/packages/base.scm (bash): Set `#:parallel-build?' and
`#:parallel-tests?' to #f.
tests: Use our own bootstrap tools.
* tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro.
* tests/packages.scm (%bootstrap-inputs): Likewise.
* tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.
release.nix: Add a `distro.hello' job.
* release.nix (distro.hello): New job.
build: Preserve the executable bit of bootstrap binaries.
* Makefile.am (install-data-hook): New target.
build: Make sure scripts know where to find their modules.
* guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so
that `guilemoduledir' expands to something meaningful.
release.nix: Pre-download the Guile bootstrap tarball.
* release.nix (bootstrap_guile): New variable.
(build)[preBuild]: New attribute.
build: Fix out-of-source-tree builds.
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
Make the target's parent directory.
* pre-inst-env.in (DISTRO_BOOTSTRAP_PATH): Add the builddir-relative
directory.
distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.
* distro.scm (not-colon): New variable.
(%patch-directory): Rename to...
(%patch-path): ... this. Turn into a list. Expect $DISTRO_PATCH_PATH
to be a colon-separated search path.
(%bootstrap-binaries-directory): Rename to...
(%bootstrap-binaries-path): ... this. Likewise.
(search-patch, search-bootstrap-binary): Adjust accordingly.
* pre-inst-env.in: Change to use `DISTRO_PATCH_PATH' and
`DISTRO_BOOTSTRAP_PATH'.
release.nix: Set succeed-on-failure and build-out-source-tree.
* release.nix: Define `succeedOnFailure', `keepBuildDirectory', and
`buildOutOfSourceTree'.
(build): Inherit them.
build: Move `distro/patches' to `distro/packages/patches'.
* distro/patches: Move directory to...
* distro/packages/patches: ... here.
* Makefile.am (dist_patch_DATA): Adjust accordingly.
* pre-inst-env.in (DISTRO_PATCH_DIRECTORY): Likewise.
build: Use `pre-inst-env' to compile the source.
* Makefile.am (.scm.go): Use `pre-inst-env' instead of re-defining the
environment variables, except for `DISTRO_INSTALLED_PATCH_DIRECTORY'
and `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY'.
guix-build: Gracefully handle `&package-input-error' conditions.
* guix/packages.scm: Export `package-error?' and `package-input-error?'.
* guix-build.in (guix-build): Catch `&package-input-error' conditions,
print a human-readable message, and exit.