ui: Move macro definitions before any use.
* guix/ui.scm (define-diagnostic, warning, report-error, leave): Move
definitions before any use. Reported by Nikita Karetnikov.
(install-locale): Move back close to `initialize-guix'.
gnu: xorriso: Update to 1.2.8.
* gnu/packages/cdrom.scm (xorriso): Update to 1.2.8.
gnu: smalltalk: Update to 3.2.5.
* gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.5.
gnu: groff: Update to 1.22.2.
* gnu/packages/groff.scm (groff): Update to 1.22.2.
gnu: gprolog: Update to 1.4.3 and download from GNU mirrors
* gnu/packages/gprolog.scm (gprolog): Update to 1.4.3.
Download from GNU mirrors.
Factorize `download-and-store'.
* guix/download.scm (download-to-store): New procedure.
* guix/scripts/download.scm (fetch-and-store): Remove.
(guix-download): Use `download-to-store' instead.
* guix/ui.scm (call-with-temporary-output-file): Move to...
* guix/utils.scm (call-with-temporary-output-file): ... here.
Add 'guix hash'.
* guix/scripts/hash.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.
* doc/guix.texi (Invoking guix hash): New node.
(Defining Packages): Add a cross-reference to the 'Invoking guix
hash' node.
guix download: Add supported formats to '--help'.
* guix/scripts/download.scm (show-help): Add supported formats.
ui: Move definition of `install-locale' after that of the `warning' macro.
* guix/ui.scm (install-locale): Move definition after that of `warning'.
gnu: guile: Update to 2.0.9.
* gnu/packages/guile.scm (guile-2.0): Update to 2.0.9.
(guile-2.0/fixed): Keep at 2.0.7.
ui: Add a 'define-diagnostic' macro.
* guix/ui.scm (define-diagnostic): New macro, which is based on the
previous version of 'warning'.
(warning, leave): Redefine using 'define-diagnostic'.
(report-error): New macro.
(install-locale): Use 'warning' instead of 'format'.
(call-with-error-handling): Adjust 'leave'.
* gnu/packages.scm (package-files): Use 'warning' instead of 'format'.
* guix/gnu-maintenance.scm (http-fetch): Use 'warning' and 'leave'.
* guix/scripts/build.scm (derivations-from-package-expressions, guix-build):
Adjust 'leave'.
* guix/scripts/download.scm (guix-download): Adjust 'leave'.
* guix/scripts/gc.scm (size->number, %options): Adjust 'leave'.
* guix/scripts/package.scm (roll-back, guix-package): Adjust 'leave'.
* po/POTFILES.in: Add 'guix/gnu-maintenance.scm'.
gnu: Add GCC 4.8.0 and Binutils 2.23.2.
* gnu/packages/base.scm (binutils-2.23, ld-wrapper-2.23, gcc-4.8): New
variables.
substitute-binary: Remove expired cache entries once in a while.
* guix/scripts/substitute-binary.scm (%narinfo-expired-cache-entry-removal-delay):
New variable.
(obsolete?): New procedure, formerly in `lookup-narinfo'.
(lookup-narinfo): Adjust accordingly.
(remove-expired-cached-narinfos, maybe-remove-expired-cached-narinfo):
New procedures.
(guix-substitute-binary): Call `maybe-remove-expired-cached-narinfo'.
snix: Prefer synopses from the Womb rather than from Nixpkgs.
* guix/snix.scm (snix-derivation->guix-package): When NAME is
in (official-gnu-packages), use this synopsis instead of the one from
Nixpkgs.
gnu: gdbm, nano: Synchronize synopses.
* gnu/packages/gdbm.scm, gnu/packages/nano.scm: Synchronize synopses
with the Womb.
daemon: Gracefully handle cases where the daemon does not return a status code.
* guix/store.scm (process-stderr): Check for EOF before doing (read-int p).
daemon: Add `--no-substitutes'.
Suggested by Mark H. Weaver.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_SUBSTITUTES): New macro.
(options): Add `--no-substitutes'.
(parse_opt): Add `GUIX_OPT_NO_SUBSTITUTES' case.
(main): Leave `settings.substituters' empty when
`settings.useSubstitutes' is false.
daemon: Really enable the substituter by default.
* nix/nix-daemon/guix-daemon.cc (main): Really enable the substituter by
default. Reported by Mark H. Weaver.
doc: Mention the home page.
* doc/guix.texi (Installation): Add a sentence pointing to the home
page. Suggested by Arne Babenhauserheide.