services: Add libvirt services * gnu/services/virtualization.scm: New file. * doc/guix.texi (Virtualization Services): Document it. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Christopher Baines <mail@cbaines.net>
services: herd: Actions return a list of results. Fixes a regression introduced in 0642838b2e9ab2bd988dccb64b9e1130006347bf. * gnu/services/herd.scm (invoke-action): Explain that we get a list of results. (current-services): Expect a list of result and use the first one. (unload-service, %load-file, eval-there): Likewise.
web: Remove the nginx-service procedure. Now that the service-type has a default value, and configuration record is accessible. * gnu/services/web.scm (nginx-service): Remove procedure. * doc/guix.texi (Web Services): Update and improve NGinx documentation.
web: Add default-value for the nginx-service-type. * gnu/services/web.scm (nginx-service-type)[default-value]: Use (nginx-configuration).
web: Export more nginx related procedures, macros and record types. This makes it possible to work with the configuration of the NGinx service programatically. * gnu/services/web.scm (<nginx-configuration>, <nginx-server-configuration>, <nginx-upstream-configuration>, <nginx-location-configuration>, <nginx-named-location-configuration>): Export NGinx related record types. (nginx-configuration-*, nginx-server-configuration-*, nginx-upstream-configuration-*, nginx-location-configuration-*, nginx-named-location-configuration-*): Export NGinx related record procedures. (nginx-configuration): Export NGinx related record macro.
web: Check for the existance of SSL related files. This adds back the previous behaviour of the nginx-service-type, where the service would check at the time when the configuration is generated if the SSL certificate and certificate key file exists. * gnu/services/web.scm (emit-nginx-server-config): Add back check for SSL related files.
gnu: services: Nginx configs can reference store * gnu/services/web.scm (config-domain-strings, config-index-strings): Emit lists instead of strings. (emit-nginx-location-config, emit-nginx-server-config) (emit-nginx-upstream-config): Rename from nginx-location-config, default-nginx-server-config, and nginx-upstream-config. Emit lists instead of strings. (flatten): New helper. (default-nginx-config): Use flatten helper to write nginx conf. This allows location configs to reference store values. Signed-off-by: Christopher Baines <mail@cbaines.net>
gnu: Fix memcached service startup. Memcached changes to the memcached user from root before writing the PID file. This means that it must be able to write the PID file as the memcached user. To make this work, create the /var/run/memcached directory when the service starts, make it owned by memcached, and change memcached to write the PID file to /var/run/memcached/pid. This wasn't picked up by the system test as the "service running" part was too permissive, and only failed on an error. Instead, test the response from calling start-service and check that the PID is a number. * gnu/services/databases.scm (memcached-activation): New variable. (memcached-shepherd-service): Change PID file location. (memcached-service-type): Extend the activation-service-type. * gnu/tests/databases.scm (run-memcached-test)[test]: Change the "service running" test to check the response from the shepherd.
gnu: Add mpd service. * doc/guix.texi: Add documentation. * gnu/services/audio.scm (<mpd-configuration>): New record type. (mpd-service-type): New service type. * gnu/tests/audio.scm: New file. * gnu/local.mk: Add new files. Signed-off-by: Christopher Baines <mail@cbaines.net>
services: admin: Simplify the handling of the Tailon debug? option. * gnu/services/admin.scm (tailon-configuration-file-compiler): Simplify the handling of debug?.
services: Update the Tailon service for Tailon 1.3.0. Tailon 1.3.0 (upgraded from 1.1.1) adds support for HTTP authentication. * gnu/services/admin.scm (<tailon-configuration-file>): Add http-auth and users configuration values. (tailon-configuration-file-http-auth, tailon-configuration-file-users): New procedures. (tailon-configuration-file-compiler): Add support for the http-auth and users configuration options. * doc/guix.texi (Monitoring Services): Document authentication for Tailon.
services: Add missing wrap-lines option to tailon. * gnu/services/admin.scm (<tailon-configuration-file>): Add wrap-lines. (tailon-configuration-wrap-lines): New procedure. (tailon-configuration-file-compiler): Add support for wrap-lines. * doc/guix.texi (Monitoring Services): Document the wrap-lines Tailon configuration option.
services: herd: Add a stop-service procedure. * gnu/services/herd.scm (stop-service): New procedure.
services: herd: Fix matching ok responses from shepherd service. Previously the match expression case for a successful response (where error is #f) required that the result component contained a list with a single element. As far as I see when looking at the responses from the shepherd, this is not normally the case. Therefore, to avoid treating successful responses as errors, make the match requirement more permissive, accepting any value. * gnu/services/herd.scm (invoke-action): Change match condition for ok responses.
services: ntp: Use the NTP pool via the 'guix' zone. * gnu/services/networking.scm (%ntp-servers): Use *.guix.pool.ntp.org.
services: openssh: Extensions provide extra authorized keys. * gnu/services/ssh.scm (extend-openssh-authorized-keys): New procedure. (openssh-service-type)[compose, extend]: New fields. * doc/guix.texi (Networking Services): Document the extension.
services: openssh: Add 'authorized-keys' field. * gnu/services/ssh.scm (<openssh-configuration>)[authorized-keys]: New field. (authorized-key-directory): New procedure. (openssh-config-file): Honor 'authorized-keys'. (openssh-activation): Use 'with-imported-modules'. Make /etc/ssh 755. Create /etc/ssh/authorized_keys.d. * doc/guix.texi (Networking Services): Document it.
services: cuirass: Set 'GIT_SSL_CAINFO' and 'GIT_EXEC_PATH'. Reported by Ricardo Wurmus. * gnu/services/cuirass.scm (cuirass-shepherd-service): Pass #:environment-variables.
services: Add memcached. * gnu/services/databases.scm (memcached-service-type, %memcached-accounts): New variables. (<memcached-configuration>): New record type. (memcached-service-type): New procedures. * gnu/tests/databases.scm: New file. * doc/guix.texi (Database Services): Document the new memcached service. * gnu/local.mk (GNU_SYSTEM_MODULES): Add entry for tests/databases.scm.
gnu: services: admin: Add tailon. * gnu/services/admin.scm (<tailon-configuration>, <tailon-configuration-file>): New record types. (tailon-configuration-files-string, tailon-shepherd-service): New procedures. (%tailon-accounts, tailon-service-type: New variables. * doc/guix.texi (Monitoring Services: Document the Tailon service. * gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/tests/admin.scm. * gnu/tests/admin.scm: New file.