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
Move part of (gnu build linux-boot) to (gnu build file-systems). * gnu/build/linux-boot.scm (%ext2-endianness, %ext2-sblock-magic, %ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name, read-ext2-superblock, ext2-superblock-uuid, ext2-superblock-volume-name, disk-partitions, partition-label-predicate, find-partition-by-label, canonicalize-device-spec, MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_BIND, MS_MOVE, bind-mount, check-file-system, mount-flags->bit-mask, mount-file-system): Move to... * gnu/build/file-systems.scm: ... here. New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/services/base.scm: Use (gnu build file-systems). * gnu/services/dmd.scm (dmd-configuration-file): Likewise. * gnu/system.scm (operating-system-activation-script): Likewise. * gnu/system/linux-initrd.scm (base-initrd): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.