services: Add 'session-environment-service'. * gnu/services/base.scm (session-environment-service): New procedure. (session-environment-service-type): New variable. (environment-variables->environment-file): New procedure.
services: Add pkexec to setuid programs. * gnu/services/desktop.scm (polkit-setuid-programs): Add pkexec to list of setuid programs.
services: tor: Store private data under /var/lib/tor. * gnu/services/networking.scm (tor-configuration->torrc): Add 'DataDirectory' clause. Change 'HiddenServiceDir' to /var/lib/tor/hidden-services/NAME. (tor-hidden-service-activation): Create /var/lib/tor. (tor-hidden-service): Adjust docstring. * doc/guix.texi (Networking Services): Adjust accordingly.
services: tor: Write to syslog. * gnu/services/networking.scm (tor-configuration->torrc): Add "Log notice syslog". (tor-dmd-service): Add 'syslogd' to 'requirement'.
services: Add 'tor-hidden-service'. * gnu/services/networking.scm (<tor-configuration>, <hidden-service>): New record types. (tor-configuration->torrc): New procedure. (tor-dmd-service): Use it. (tor-hidden-service-activation): New procedure. (tor-service-type)[extensions]: Extend ACTIVATION-SERVICE-TYPE. [compose, extend]: New fields. (tor-service): Use 'tor-configuration'. (tor-hidden-service-type): New variable. (tor-hidden-service): New procedure.
services: lsh: Correctly handle #:interfaces option. * gnu/services/ssh.scm (lsh-dmd-service)[lsh-command]: Pass a series of --interface flags instead of the nonexistent --interfaces option.
services: Add network-manager-service. * gnu/services/networking.scm (network-manager-service): New procedure. (network-manager-service-type, %network-manager-activation): New variables. (network-manager-dmd-service): New procedure.
services: xorg: Export additional symbols. 'slim-configuration' and 'slim-service-type' are needed if one wishes to use 'modify-services' on a service list that includes the slim service. * gnu/services/xorg.scm: Export 'slim-configuration' and 'slim-service-type'.
services: dmd: Spawn a REPL upon failure to load a service definition. Fixes <http://bugs.gnu.org/19779>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/services/dmd.scm (dmd-configuration-file)[config]: Wrap 'primitive-load' calls in 'call-with-error-handling'.
services: dmd: Strip the default list of modules. * gnu/services/dmd.scm (%default-imported-modules): Remove (gnu build file-systems). (%default-modules): Likewise, and remove (ice-9 ftw). * gnu/services/base.scm (file-system-service-type): Add 'modules' and 'imported-modules' fields.
services: dmd: Add 'modules' and 'imported-modules' fields. * gnu/services/dmd.scm (%default-imported-modules, %default-modules): New variables. * gnu/services/dmd.scm (<dmd-service>)[modules, imported-modules]: New field. * gnu/services/dmd.scm (dmd-service-file-name, dmd-service-file): New procedures. (dmd-configuration-file)[modules]: Compute based on the 'imported-modules' field of SERVICES. (dmd-configuration-file): Remove 'use-modules' form. Use 'dmd-service-file', and call 'primitive-load' on each file. * doc/guix.texi (dmd Services): Document the new fields.
services: dmd: Error out upon unmet dmd requirements. * gnu/services/dmd.scm (assert-no-duplicates): Rename to... (assert-valid-graph): ... this. [provisions]: New variable. [assert-satisfied-requirements]: New procedure. Use it. * tests/guix-system.sh: Add test with unmet dmd requirements.
gnu: services: Fix typo in gpm-dmd-service. * gnu/services/base.scm (gpm-dmd-service): s/dmd/gpm/
services: Add udev-rule procedure. * gnu/services/base.scm (udev-rule): New procedure. (kvm-udev-rule): Rewrite as variable in terms of udev-rule.
services: Export udev-configuration procedures. * gnu/services/base.scm (udev-configuration, udev-configuration?, udev-configuration-rules): Export.
services: Add 'gpm-service'. * gnu/services/base.scm (<gpm-configuration>): New record type. (gpm-dmd-service): New procedure. (gpm-service-type): New variable. (gpm-service): New procedure. * doc/guix.texi (Base Services): Document it.
system: Rename (gnu system linux) to (gnu system pam). * gnu/system/linux.scm: Rename to... * gnu/system/pam.scm: ... this. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu.scm, gnu/services/base.scm, gnu/services/desktop.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system.scm, gnu/system/vm.scm: Likewise.
services: Add 'guix-publish-service'. * gnu/services/base.scm (<guix-publish-configuration>): New record type. (guix-publish-dmd-service): New procedure. (%guix-publish-accounts, guix-publish-service-type): New variables. (guix-publish-service): New procedure. * doc/guix.texi (Invoking guix publish): Add xref to 'guix-publish-service' anchor. (Base Services): Document 'guix-publish-service'.
services: udisks: Add UDisks to the system profile. * gnu/services/desktop.scm (udisks-service-type): Extend PROFILE-SERVICE-TYPE.
services: avahi: Add Avahi to the system profile. * gnu/services/avahi.scm (avahi-service-type): Extend PROFILE-SERVICE-TYPE. (avahi-service): Adjust docstring. * doc/guix.texi (Networking Services): Adjust accordingly. * gnu/system/examples/desktop.tmpl (packages): Remove AVAHI.