Move record utilities to (guix records).
* guix/utils.scm (define-record-type*): Move to...
* guix/records.scm: ... here. New file.
* guix/build-system.scm, guix/packages.scm: Use it.
* guix/gnu-maintenance.scm: Likewise.
(official-gnu-packages)[alist->record]: Remove.
* guix/scripts/substitute-binary.scm: Likewise.
(alist->record, object->fields): Remove.
* tests/utils.scm ("define-record-type*", "define-record-type* with
letrec* behavior", "define-record-type* & inherit",
"define-record-type* & inherit & letrec* behavior",
"define-record-type* & thunked", "define-record-type* & thunked &
default", "define-record-type* & thunked & inherited"): Move to...
* tests/records.scm: ... here. New file.
gnu: guile-reader: Install modules in the right place.
* gnu/packages/guile.scm (guile-reader): Add `arguments' field.
gnu: Add GNU RCS.
* gnu/packages/bazaar.scm: Rename to...
* gnu/packages/version-control.scm: ... this.
(rcs): New variable.
* Makefile.am (MODULES): Adjust accordingly.
build: Really clean .log files from SRFI-64.
* Makefile.am (CLEANFILES): Really catch .log files from SRFI-64.
build: Run `tests/guix-gc.sh' last to avoid test failures.
* Makefile.am (tests/guix-gc.log): New target. This should fix failures
that occurred with "make check -j" the first time.
gnu: Add Scheme48.
* gnu/packages/scheme.scm (scheme48): New variable.
* gnu/packages/patches/scheme48-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
gnu: gnupg: Update to 2.0.20.
* gnu/packages/gnupg.scm (gnupg): Update to 2.0.20.
gnu: chicken: Clear description.
* gnu/packages/scheme.scm (chicken): Remove unneeded part of the
description.
doc: Document "guix download".
* doc/guix.texi (Defining Packages): Linke to "Invoking guix download".
(Utilities): Add an overview paragraph.
(Invoking guix download): New node.
gnu: Sync synopses with the Womb.
* gnu/packages/bazaar.scm (bazaar): Use synopsis from the Womb.
* gnu/packages/gv.scm (gv): Likewise.
tests: Fix out-of-source builds.
* tests/nar.scm (%test-dir): Compute relative to `pre-inst-env', which
is in $top_builddir.
tests: Add `guix hash' test.
* guix/scripts/hash.scm (guix-hash)[eof->null]: New procedure.
Use it to convert the EOF object to the empty bytevector.
* tests/guix-hash.sh: New file.
* Makefile.am (SH_TESTS): Add it.
Update Nix sub-module.
* nix-upstream: Update to 3a0cc43ac89ae8f778764c9f5e27b361e4986913
(Nix ~1.5.2).
refresh: Add `--key-server' and `--gpg'.
* guix/scripts/refresh.scm (%options): Add `--key-server' and `--gpg'.
(show-help): Update accordingly.
(update-package): New procedure, formerly in `guix-refresh'.
(guix-refresh): Use it. Parameterize `%openpgp-key-server' and
`%gpg-command'.
gnupg: Turn the GPG command name and keyserver into parameters.
* guix/gnupg.scm (%gpg-command): Turn into a SRFI-39 parameter.
(%openpgp-key-server): Likewise. Default to pgp.mit.edu, as
keys.gnupg.net is unreliable.
Update users.
gnu: Add CHICKEN.
* gnu/packages/scheme.scm (chicken): New variable.
ui: Invite users to try `--help' in the error message.
* guix/ui.scm (show-guix-usage): Mention `guix --help'.
Suggested by Mark H. Weaver.
(run-guix-command): Invoke it when a command is not found.
(guix-main): Adjust accordingly.