summaryrefslogtreecommitdiff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-09-09 09:17:31 +0200
committerLudovic Courtès <ludo@gnu.org>2015-10-10 22:46:14 +0200
commitbe1c2c54d9f918f50f71c6d32a72d4498c07504c (patch)
tree642d087516b3ae7c2ffad6444e25b410712c92be /gnu/system
parentce8a6dfc43265787c23fb93d3877fbcacb0451e4 (diff)
system: Make service procedures non-monadic.
* gnu/services/avahi.scm (configuration-file): Use 'plain-file' instead of 'text-file'. (avahi-service): Turn into a regular procedure that returns a <service>. * gnu/services/base.scm (root-file-system-service, file-system-service, user-unmount-service, user-processes-service, host-name-service, console-keymap-service, console-font-service, mingetty-service, nscd.conf-file, nscd-service): Likewise. (%default-syslog.conf): New variable. (syslog-service): Use it. Turn into a regular procedure. (guix-service, udev-rules-union, kvm-udev-rule, udev-service, device-mapping-service, swap-service): Likewise. * gnu/services/databases.scm (%default-postgres-hba, %default-postgres-ident): Use 'plain-file' instead of 'text-file'. (%default-postgres-config): Use 'mixed-text-file' instead of 'text-file*'. (postgresql-service): Use 'program-file' instead of 'gexp->script'. Turn into a regular procedure. * gnu/services/desktop.scm (dbus-configuration-directory): Use 'computed-file' instead of 'gexp->derivation'. (upower-configuration-file, geoclue-configuration-file, elogind-configuration-file): Use 'plain-file' instead of 'text-file'. (dbus-service, upower-service, colord-service, geoclue-service, polkit-service, elogind-service): Turn into regular procedures. (%desktop-services): Remove use of 'mlet' when iterating on %BASE-SERVICES. * gnu/services/lirc.scm (lirc-service): Turn into a regular procedure. * gnu/services/networking.scm (static-networking-service, dhcp-client-service, ntp-service, tor-service, bitlbee-service, wicd-service): Likewise. * gnu/services/ssh.scm (lsh-service): Likewise. * gnu/services/web.scm (nginx-service): Likewise. * gnu/services/xorg.scm (xorg-configuration-file): Use 'mixed-text-file' instead of 'text-file*'. (xorg-start-command, slim-service): Turn into regular procedures. (xinitrc): Use 'program-file' instead of 'gexp->script'. * gnu/system/install.scm (cow-store-service, configuration-template-service): Turn into regular procedures. * gnu/system.scm (other-file-system-services, device-mapping-services, swap-services, essential-services, operating-system-services, user-shells, operating-system-accounts): Remove now unnecessary 'mlet' and turn into regular procedures. (operating-system-etc-directory, operating-system-activation-script, operating-system-boot-script): Adjust accordingly. * doc/guix.texi (Base Services, Networking Services, X Window, Desktop Services, Database Services, Web Services, Various Services, Name Service Switch): Adjust accordingly.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/install.scm84
1 files changed, 41 insertions, 43 deletions
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index dc5a47a293..1ba36c394b 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -163,32 +163,31 @@ current store is on a RAM disk."
"Return a service that makes the store copy-on-write, such that writes go to
the user's target storage device rather than on the RAM disk."
;; See <http://bugs.gnu.org/18061> for the initial report.
- (with-monad %store-monad
- (return (service
- (requirement '(root-file-system user-processes))
- (provision '(cow-store))
- (documentation
- "Make the store copy-on-write, with writes going to \
+ (service
+ (requirement '(root-file-system user-processes))
+ (provision '(cow-store))
+ (documentation
+ "Make the store copy-on-write, with writes going to \
the given target.")
- ;; This is meant to be explicitly started by the user.
- (auto-start? #f)
-
- (start #~(case-lambda
- ((target)
- #$(make-cow-store #~target)
- target)
- (else
- ;; Do nothing, and mark the service as stopped.
- #f)))
- (stop #~(lambda (target)
- ;; Delete the temporary directory, but leave everything
- ;; mounted as there may still be processes using it
- ;; since 'user-processes' doesn't depend on us. The
- ;; 'user-unmount' service will unmount TARGET
- ;; eventually.
- (delete-file-recursively
- (string-append target #$%backing-directory))))))))
+ ;; This is meant to be explicitly started by the user.
+ (auto-start? #f)
+
+ (start #~(case-lambda
+ ((target)
+ #$(make-cow-store #~target)
+ target)
+ (else
+ ;; Do nothing, and mark the service as stopped.
+ #f)))
+ (stop #~(lambda (target)
+ ;; Delete the temporary directory, but leave everything
+ ;; mounted as there may still be processes using it
+ ;; since 'user-processes' doesn't depend on us. The
+ ;; 'user-unmount' service will unmount TARGET
+ ;; eventually.
+ (delete-file-recursively
+ (string-append target #$%backing-directory))))))
(define (configuration-template-service)
"Return a dummy service whose purpose is to install an operating system
@@ -204,25 +203,24 @@ configuration template file in the installation system."
'(("gnu/system/examples/bare-bones.tmpl" -> "bare-bones.scm")
("gnu/system/examples/desktop.tmpl" -> "desktop.scm"))))
- (with-monad %store-monad
- (return (service
- (requirement '(root-file-system))
- (provision '(os-config-template))
- (documentation
- "This dummy service installs an OS configuration template.")
- (start #~(const #t))
- (stop #~(const #f))
- (activate
- #~(begin
- (use-modules (ice-9 match)
- (guix build utils))
-
- (mkdir-p "/etc/configuration")
- (for-each (match-lambda
- ((file target)
- (unless (file-exists? target)
- (copy-file file target))))
- '#$templates)))))))
+ (service
+ (requirement '(root-file-system))
+ (provision '(os-config-template))
+ (documentation
+ "This dummy service installs an OS configuration template.")
+ (start #~(const #t))
+ (stop #~(const #f))
+ (activate
+ #~(begin
+ (use-modules (ice-9 match)
+ (guix build utils))
+
+ (mkdir-p "/etc/configuration")
+ (for-each (match-lambda
+ ((file target)
+ (unless (file-exists? target)
+ (copy-file file target))))
+ '#$templates)))))
(define %nscd-minimal-caches
;; Minimal in-memory caching policy for nscd.