aboutsummaryrefslogtreecommitdiff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-01-21 00:05:09 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-21 00:24:03 +0100
commitd466b1fc8221a6224fe7ded53a828f9c29ed9457 (patch)
tree5180831a10c380d7eca1e8c0abc5b09d49a3a38c /gnu/system.scm
parentbc58201ec22aeb07b61dc1e482d6a57868436eef (diff)
downloadpatches-d466b1fc8221a6224fe7ded53a828f9c29ed9457.tar
patches-d466b1fc8221a6224fe7ded53a828f9c29ed9457.tar.gz
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.
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index 40e259f430..39452304ba 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@@ -492,8 +492,9 @@ a container or that of a \"bare metal\" system."
(define* (operating-system-services os #:key container?)
"Return all the services of OS, including \"internal\" services that do not
explicitly appear in OS."
- (append (operating-system-user-services os)
- (essential-services os #:container? container?)))
+ (instantiate-missing-services
+ (append (operating-system-user-services os)
+ (essential-services os #:container? container?))))
;;;