services: Make 'nscd-service' configurable; cache hosts/services by default. Before that, as it was given an empty configuration file, nscd would actually have all its caches disabled. * gnu/services/base.scm (<nscd-configuration>, <nscd-cache>): New record types. (%nscd-default-caches, %nscd-default-configuration): New variables. (nscd.conf-file): New procedure. (nscd-service): Add 'config' parameter. Use 'nscd.conf-file', and pass its result as the '-f' parameter of nscd. * doc/guix.texi (Base Services): Update 'nscd-service' documentation accordingly. Document 'nscd-configuration', 'nscd-cache', '%nscd-default-configuration', and '%nscd-default-caches'.
services: user-unmount: Change directory to "/" before unmounting. * gnu/services/base.scm (user-unmount-service): Add 'chdir' call.
services: Add 'user-unmount-service' as an essential service. * gnu/services/base.scm (user-unmount-service): New procedure. * gnu/system.scm (essential-services): Use it. * gnu/system/install.scm (cow-store-service): Mention it in comment.
services: udev: Make /dev/kvm 666 as a workaround. * gnu/services/base.scm (kvm-udev-rule): Change /dev/kvm mode to 666 to work around <http://bugs.gnu.org/18994>.
services: Increase delay before SIGKILL is sent when halting. * gnu/services/base.scm (user-processes-service): Increase the default value of 'grace-delay'. This leaves more time for processes to clean up their PID files, /tmp/.X0-lock, etc.
system: Fix value of 'EUDEV_RULES_DIRECTORY'. * gnu/services/base.scm (udev-service): Append "/lib/udev/rules.d" to EUDEV_RULES_DIRECTORY.
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".
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.
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'.
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.
Merge branch 'master' into core-updates Conflicts: gnu-system.am
system: Use eudev instead of udev by default. * gnu/system.scm (%base-packages): Change 'udev' to 'eudev'. * gnu/services/base.scm (udev-service): Change #:udev to default to 'eudev'.
services: udev: Allow the use of eudev. * gnu/services/base.scm (udev-service): Adjust 'start' method to support eudev in addition to udev.
system: Add FUSE and ALSA udev rules by default. * gnu/services/base.scm (%base-services): Pass FUSE and ALSA-UTILS to 'udev-service'.
Merge branch 'master' into core-updates Conflicts: gnu/packages/image.scm
system: Add support for Linux-style mapped devices. * gnu/system/file-systems.scm (<mapped-device>): New record type. * gnu/system.scm (<operating-system>)[mapped-devices]: New field. (luks-device-mapping): New procedure. (other-file-system-services)[device-mappings, requirements]: New procedures. Pass #:requirements to 'file-system-service'. (device-mapping-services): New procedure. (essential-services): Use it. Append its result to the return value. (operating-system-initrd-file): Add comment. * gnu/services/base.scm (file-system-service): Add #:requirements parameter and honor it. (device-mapping-service): New procedure. * gnu/system/linux-initrd.scm (base-initrd): Add comment.
services: udev: Allow for additional udev rules. * gnu/services/base.scm (udev-rules-union): New procedure. (udev-service): Add #:rules parameter. Call 'udev-rules-union' and create udev.conf. Set $UDEV_CONFIG_FILE before spawning udevd.
Merge branch 'master' into core-updates