gnu: hello: Upgrade to 2.9.
* gnu/packages/base.scm (hello): Upgrade to 2.9. Remove 'arguments' and
'inputs' fields, which were never needed.
gnu: libextractor: Upgrade to 1.2.
* gnu/packages/gnunet.scm (libextractor): Upgrade to 1.2.
gnu: freeipmi: Upgrade to 1.3.3.
* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.3.3.
gnu: rcs: Upgrade to 5.9.1.
* gnu/packages/version-control.scm (rcs): Upgrade to 5.9.1. Add ed as
an input.
gnu: lightning: Upgrade to 2.0.2.
* gnu/packages/lightning.scm (lightning): Upgrade to 2.0.2.
gnu: linux-libre: Upgrade to 3.12.
* gnu/packages/linux.scm (linux-libre): Upgrade to 3.12.
gnu: vm: Really create a QCOW2-format image.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass "-f
qcow2" to 'qemu-img create'.
doc: Link to package-list.html.
* doc/guix.texi (GNU Distribution): Add link to package-list.html.
list-packages: Produce link to the origin snippet, if any.
* build-aux/list-packages.scm (package->sxml)[patches](snippet-link):
New procedure.
Use it to produce a link to the 'origin-snippet', if any.
packages: 'package-field-location' returns a relative file name.
* guix/packages.scm (package-field-location): Set
%FILE-PORT-NAME-CANONICALIZATION.
* tests/packages.scm ("package-field-location, relative file name"): New
test.
guix build: '-e' can be passed a monadic thunk.
* guix/ui.scm (read/eval): New procedure.
(read/eval-package-expression): Use it.
* guix/scripts/build.scm (derivations-from-package-expressions): Rename to...
(derivation-from-expression): ... this. Accept procedures, under the
assumption that they are monadic thunk.
(show-help): Adjust accordingly.
(guix-build): Ditto.
* tests/guix-build.sh: Add test.
* doc/guix.texi (Invoking guix build): Augment description of '-e'.
doc: Mention Linux containers; emphasize reproducible builds.
* doc/guix.texi (Introduction): Use "containers" instead of "chroots".
(Invoking guix-daemon): Add @cindex entries. Mention the Linux
container features.
(Features): Add sentence on build reproducibility.
doc: Improve "Installing Guix from Guix" section.
Reported by Mark H. Weaver <mhw@netris.org>.
* README (Installing Guix from Guix): Explicitly mention $PATH
separately. Mention $ACLOCAL_PATH, not $ACLOCAL. Give the exact
command to install the dependencies. Remove mention of
$GUIX_LD_WRAPPER_ALLOW_IMPURITIES, which is no longer needed.
gnu: cflow: Install Emacs mode.
* gnu/packages/cflow.scm (cflow): Add Emacs as an input.
substitute-binary: Adjust timeout handling for Guile > 2.0.9.
* guix/scripts/substitute-binary.scm (with-timeout): Update comment to
mention the fix's commit ID.
(fetch): In the 'with-timeout' handler, close PORT only one Guile
versions < 2.0.9.39. Before that, on Guile >= 2.0.9.39, the HTTP
client would end up trying to read from a closed file descriptor.
derivations: Allow 'map-derivations' to replace sources.
* guix/derivations.scm (map-derivation)[input->output-paths]: Allow
non-derivation inputs.
Allow replacements to be store files. Replace in SOURCES too.
* tests/derivations.scm ("map-derivation, sources"): New test.
packages: Suitably cope with indirect store paths as package sources.
* guix/packages.scm (package-source-derivation): Don't let indirect
store paths pass through.
* tests/packages.scm ("package-source-derivation, indirect store path"):
New test.
store: Make 'direct-store-path?' public.
* guix/store.scm (direct-store-path?): New procedure.
* guix/derivations.scm (derivation)[direct-store-path?]: Remove.
* tests/store.scm ("direct-store-path?"): New test.
derivations: Add 'map-derivation'.
* guix/derivations.scm (map-derivation): New procedure.
* tests/derivations.scm ("map-derivation"): New test.
utils: Add 'string-replace-substring'.
* guix/utils.scm (string-replace-substring): New procedure. Based on
code by Mark H. Weaver.
* tests/utils.scm ("string-replace-substring"): New test.