services: Missing services are automatically instantiated.
authorLudovic Courtès <ludo@gnu.org>
Sat, 20 Jan 2018 23:05:09 +0000 (00:05 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sat, 20 Jan 2018 23:24:03 +0000 (00:24 +0100)
commitd466b1fc8221a6224fe7ded53a828f9c29ed9457
tree5180831a10c380d7eca1e8c0abc5b09d49a3a38c
parentbc58201ec22aeb07b61dc1e482d6a57868436eef
services: Missing services are automatically instantiated.

This simplifies OS configuration: users no longer need to be aware of
what a given service depends on.

See the discussion at
<https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00114.html>.

* gnu/services.scm (missing-target-error): New procedure.
(service-back-edges): Use it.
(instantiate-missing-services): New procedure.
* gnu/system.scm (operating-system-services): Call
'instantiate-missing-services'.
* tests/services.scm ("instantiate-missing-services")
("instantiate-missing-services, no default value"): New tests.
* gnu/services/version-control.scm (cgit-service-type)[extensions]: Add
FCGIWRAP-SERVICE-TYPE.
* gnu/tests/version-control.scm (%cgit-os): Remove NGINX-SERVICE-TYPE
and FCGIWRAP-SERVICE-TYPE instances.
* doc/guix.texi (Log Rotation): Remove 'mcron-service-type' in example.
(Miscellaneous Services): Remove 'nginx-service-type' and
'fcgiwrap-service-type' in Cgit example.
doc/guix.texi
gnu/services.scm
gnu/services/version-control.scm
gnu/system.scm
gnu/tests/version-control.scm
tests/services.scm