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.
gnu: Add IceCat.
* gnu/packages/gnuzilla.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
gnu: Add GNU APL.
* gnu/packages/apl.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
guix build: Add '--log-file'.
* guix/scripts/build.scm (show-help): Add '--log-file'.
(%options): Likewise.
(guix-build): Set %FILE-PORT-NAME-CANONICALIZATION. Honor '--log-file'.
* tests/guix-build.sh: Add '--log-file' tests.
* doc/guix.texi (Invoking guix build): Document '--log-file'.
store: Add 'log-file' procedure.
* guix/store.scm (log-file): New procedure.
* tests/store.scm ("log-file, derivation", "log-file, output file
name"): New tests.
gnu: Add phonon.
* gnu/packages/kde.scm (phonon): New variable.