gnu: linux-libre: Update to 3.16.3.
* gnu/packages/linux.scm (linux-libre): Update to version 3.16.3.
system: Add udev rule for /dev/kvm.
* gnu/services/base.scm (kvm-udev-rule): New procedure.
(udev-service): Use it, and add it to RULES.
(guix-build-accounts): Add "kvm" to the 'supplementary-groups' field.
* gnu/system/shadow.scm (%base-groups): Add "kvm".
linux-initrd: Remove now obsolete #:guile-modules-in-chroot? parameter.
* gnu/build/linux-boot.scm (boot-system): Remove
#:guile-modules-in-chroot? and related code.
* gnu/system/linux-initrd.scm (base-initrd): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove
#:guile-modules-in-chroot? argument in 'base-initrd' call.
doc: Remove a couple of limitations.
* doc/guix.texi (System Installation): Remove encrypted disks and swap
from the limitations.
system: Add support for swap devices.
* gnu/services/base.scm (swap-service): New procedure.
* gnu/system.scm (<operating-system>)[swap-devices]: New field.
(swap-services): New procedure.
(essential-services): Use it.
syscalls: Add 'swapon' and 'swapoff'.
* guix/build/syscalls.scm (swapon, swapoff): New procedures.
* tests/syscalls.scm ("swapon, ENOENT/EPERM", "swapoff, EINVAL/EPERM"):
New tests.
doc: Document mapped devices.
* doc/guix.texi (Mapped Devices): New subsection.
system: Define 'device-mapping-kind', and add a 'close' procedure.
* gnu/system/file-systems.scm (<mapped-device-type>): New record type.
(<mapped-device>)[command]: Remove field.
[type]: New field.
* gnu/services/base.scm (device-mapping-service): Rename 'command'
parameter to 'open'. Add 'close' parameter and honor it.
* gnu/system.scm (luks-device-mapping): Rename to...
(open-luks-device): ... this.
(close-luks-device): New procedure.
(luks-device-mapping): New variable.
(device-mapping-services): Get the type of MD, and pass its 'open' and
'close' fields to 'device-mapping-service'.
pull: Rewrite using gexps.
* guix/scripts/pull.scm (unpack): Remove 'store' parameter. Rewrite
using 'gexp->derivation'.
(what-to-build, indirect-root-added, build-and-install): New
procedures.
(guix-pull): Use it.
gnu: skribilo: Make sure Guile-Reader is in the search path.
Reported by Luis Souto Graña <luissoutobueu@gmail.com>.
* gnu/packages/skribilo.scm (skribilo)[arguments]: Add #:phases.
gnu: libcanberra: Update URL.
Reported by Federico Beffa <beffa@ieee.org>.
* gnu/packages/libcanberra.scm (libcanberra)[source]: Update URI.
services: dhcp-client: Start 'dhclient' in "no wait" mode.
* gnu/services/networking.scm (dhcp-client-service): Pass '-nw' to
'dhclient'.
services: file-system: Change directory to root before unmounting.
* gnu/services/base.scm (file-system-service)[stop]: Add 'chdir' call.
services: user-processes: Wait for complete process termination.
* gnu/services/base.scm (user-processes-service): Add 'wait' loop.
services: udev: Make non-respawnable.
* gnu/services/base.scm (udev-service): Add 'respawn?' field.
services: Change default 'stop' value to #~(const #f).
* gnu/services.scm (<service>)[stop]: Change default value.
build: Ignore the user's language settings when running tests.
* test-env.in: Unset 'LANGUAGE', set 'LC_MESSAGE'.
utils: Create temporary files in $TMPDIR or /tmp.
Reported by Federico Beffa <beffa@ieee.org>.
* guix/utils.scm (call-with-temporary-output-file): Prepend $TMPDIR or
/tmp to TEMPLATE.
system: Add "input" to '%base-groups'.
* gnu/system/shadow.scm (%base-groups): Add "input" group.
Remove outdated items from 'TODO'.