Merge branch 'master' into core-updates
services: nscd: Make sure /var/db/nscd exists. * gnu/services/base.scm (nscd-service)[activate]: Make /var/db/nscd.
services: nscd-service: Add #:name-services parameter. * gnu/services/base.scm (nscd-service): Add #:name-services parameter. In 'start' field, set LD_LIBRARY_PATH based on #:name-services. * doc/guix.texi (Base Services): Document it. (Name Service Switch): Link to 'nscd-service'.
services: mingetty: Wait for udev. * gnu/services/base.scm (mingetty-service): Add 'udev' to 'requirement'.
services: guix: #:authorize-hydra-key? now defaults to #t. * gnu/services/base.scm (guix-service): Change AUTHORIZE-HYDRA-KEY? default value to #t.
monads: Move '%store-monad' and related procedures where they belong. This turns (guix monads) into a generic module for monads, and moves the store monad and related monadic procedures in their corresponding module. * guix/monads.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file, package-file, package->derivation, package->cross-derivation, origin->derivation, imported-modules, compiled, modules, built-derivations, run-with-store): Move to... * guix/store.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file): ... here. (%guile-for-build): New variable. (run-with-store): Moved from monads.scm. Remove default value for #:guile-for-build. * guix/packages.scm (default-guile): Export. (set-guile-for-build): New procedure. (package-file, package->derivation, package->cross-derivation, origin->derivation): Moved from monads.scm. * guix/derivations.scm (%guile-for-build): Remove. (imported-modules): Rename to... (%imported-modules): ... this. (compiled-modules): Rename to... (%compiled-modules): ... this. (built-derivations, imported-modules, compiled-modules): New procedures. * gnu/services/avahi.scm, gnu/services/base.scm, gnu/services/dbus.scm, gnu/services/dmd.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system/install.scm, gnu/system/linux-initrd.scm, gnu/system/shadow.scm, guix/download.scm, guix/gexp.scm, guix/git-download.scm, guix/profiles.scm, guix/svn-download.scm, tests/monads.scm: Adjust imports accordingly. * guix/monad-repl.scm (default-guile-derivation): New procedure. (store-monad-language, run-in-store): Use it. * build-aux/hydra/gnu-system.scm (qemu-jobs): Add explicit 'set-guile-for-build' call. * guix/scripts/archive.scm (derivation-from-expression): Likewise. * guix/scripts/build.scm (options/resolve-packages): Likewise. * guix/scripts/environment.scm (guix-environment): Likewise. * guix/scripts/system.scm (guix-system): Likewise. * doc/guix.texi (The Store Monad): Adjust module names accordingly.
services: user-processes: Really honor the grace delay. * gnu/services/base.scm (user-processes-service): Change #:grace-delay default value to 4. Define 'sleep*' and use it.
Merge branch 'master' into core-updates
services: user-processes: Write debugging messages to the output port. * gnu/services/base.scm (user-processes-service): Write "sending all processes..." message to the current output port, not to /dev/console.
Merge branch 'master' into core-updates
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.