summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/base.scm100
-rw-r--r--gnu/services/cuirass.scm2
-rw-r--r--gnu/services/desktop.scm3
-rw-r--r--gnu/services/networking.scm55
-rw-r--r--gnu/services/web.scm8
-rw-r--r--gnu/services/xorg.scm1
6 files changed, 129 insertions, 40 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 5001298ab3..10c8f1b6a3 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -29,6 +29,7 @@
#:use-module (gnu services networking)
#:use-module (gnu system pam)
#:use-module (gnu system shadow) ; 'user-account', etc.
+ #:use-module (gnu system uuid)
#:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu system mapped-devices)
#:use-module ((gnu system linux-initrd)
@@ -47,6 +48,7 @@
#:select (mount-flags->bit-mask))
#:use-module (guix gexp)
#:use-module (guix records)
+ #:use-module (guix modules)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
@@ -208,7 +210,10 @@
(list (service-extension etc-service-type
file-systems->fstab)))
(compose concatenate)
- (extend append)))
+ (extend append)
+ (description
+ "Populate the @file{/etc/fstab} based on the given file
+system objects.")))
(define %root-file-system-shepherd-service
(shepherd-service
@@ -276,18 +281,12 @@ FILE-SYSTEM."
"Return the shepherd service for @var{file-system}, or @code{#f} if
@var{file-system} is not auto-mounted upon boot."
(let ((target (file-system-mount-point file-system))
- (device (file-system-device file-system))
- (type (file-system-type file-system))
- (title (file-system-title file-system))
- (flags (file-system-flags file-system))
- (options (file-system-options file-system))
- (check? (file-system-check? file-system))
(create? (file-system-create-mount-point? file-system))
(dependencies (file-system-dependencies file-system))
(packages (file-system-packages (list file-system))))
(and (file-system-mount? file-system)
- (with-imported-modules '((gnu build file-systems)
- (guix build bournish))
+ (with-imported-modules (source-module-closure
+ '((gnu build file-systems)))
(shepherd-service
(provision (list (file-system->shepherd-service-name file-system)))
(requirement `(root-file-system
@@ -310,8 +309,7 @@ FILE-SYSTEM."
'#$packages))))
(lambda ()
(mount-file-system
- `(#$device #$title #$target #$type #$flags
- #$options #$check?)
+ '#$(file-system->spec file-system)
#:root "/"))
(lambda ()
(setenv "PATH" $PATH)))
@@ -354,7 +352,10 @@ FILE-SYSTEM."
(service-extension fstab-service-type
identity)))
(compose concatenate)
- (extend append)))
+ (extend append)
+ (description
+ "Provide Shepherd services to mount and unmount the given
+file systems, as well as corresponding @file{/etc/fstab} entries.")))
(define user-unmount-service-type
(shepherd-service-type
@@ -550,7 +551,11 @@ stopped before 'kill' is called."
(service-type (name 'urandom-seed)
(extensions
(list (service-extension shepherd-root-service-type
- urandom-seed-shepherd-service)))))
+ urandom-seed-shepherd-service)))
+ (description
+ "Seed the @file{/dev/urandom} pseudo-random number
+generator (RNG) with the value recorded when the system was last shut
+down.")))
(define (urandom-seed-service)
(service urandom-seed-service-type #f))
@@ -618,7 +623,15 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
(list `("environment"
,(environment-variables->environment-file vars)))))))
(compose concatenate)
- (extend append)))
+ (extend append)
+ (description
+ "Populate @file{/etc/environment} with the specified environment
+variables. The value of this service is a list of name/value pairs for
+environments variables, such as:
+
+@example
+'((\"TZ\" . \"Canada/Pacific\"))
+@end example\n")))
(define (session-environment-service vars)
"Return a service that builds the @file{/etc/environment}, which can be read
@@ -718,7 +731,15 @@ strings or string-valued gexps."
(list (service-extension shepherd-root-service-type
console-font-shepherd-services)))
(compose concatenate)
- (extend append)))
+ (extend append)
+ (description
+ "Install the given fonts on the specified ttys (fonts are per
+virtual console on GNU/Linux). The value of this service is a list of
+tty/font pairs like:
+
+@example
+'((\"tty1\" . \"LatGrkCyr-8x16\"))
+@end example\n")))
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
"This procedure is deprecated in favor of @code{console-font-service-type}.
@@ -753,7 +774,10 @@ Return a service that sets up Unicode support in @var{tty} and loads
(define login-service-type
(service-type (name 'login)
(extensions (list (service-extension pam-root-service-type
- login-pam-service)))))
+ login-pam-service)))
+ (description
+ "Provide a console log-in service as specified by its
+configuration value, a @code{login-configuration} object.")))
(define* (login-service #:optional (config (login-configuration)))
"Return a service configure login according to @var{config}, which specifies
@@ -969,7 +993,10 @@ the message of the day, among other things."
(define agetty-service-type
(service-type (name 'agetty)
(extensions (list (service-extension shepherd-root-service-type
- agetty-shepherd-service)))))
+ agetty-shepherd-service)))
+ (description
+ "Provide console login using the @command{agetty}
+program.")))
(define* (agetty-service config)
"Return a service to run agetty according to @var{config}, which specifies
@@ -1020,7 +1047,10 @@ the tty to run, among other things."
(define mingetty-service-type
(service-type (name 'mingetty)
(extensions (list (service-extension shepherd-root-service-type
- mingetty-shepherd-service)))))
+ mingetty-shepherd-service)))
+ (description
+ "Provide console login using the @command{mingetty}
+program.")))
(define* (mingetty-service config)
"Return a service to run mingetty according to @var{config}, which specifies
@@ -1189,7 +1219,11 @@ the tty to run, among other things."
(inherit config)
(name-services (append
(nscd-configuration-name-services config)
- name-services)))))))
+ name-services)))))
+ (description
+ "Runs libc's @dfn{name service cache daemon} (nscd) with the
+given configuration---an @code{<nscd-configuration>} object. @xref{Name
+Service Switch}, for an example.")))
(define* (nscd-service #:optional (config %nscd-default-configuration))
"Return a service that runs libc's name service cache daemon (nscd) with the
@@ -1285,7 +1319,11 @@ information on the configuration file syntax."
(extensions
(list (service-extension etc-service-type security-limits)
(service-extension pam-root-service-type
- (lambda _ (list pam-extension))))))))
+ (lambda _ (list pam-extension)))))
+ (description
+ "Install the specified resource usage limits by populating
+@file{/etc/security/limits.conf} and using the @code{pam_limits}
+authentication module."))))
(define* (pam-limits-service #:optional (limits '()))
"Return a service that makes selected programs respect the list of
@@ -1461,7 +1499,9 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
(service-extension activation-service-type guix-activation)
(service-extension profile-service-type
(compose list guix-configuration-guix))))
- (default-value (guix-configuration))))
+ (default-value (guix-configuration))
+ (description
+ "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}.")))
(define* (guix-service #:optional (config %default-guix-configuration))
"Return a service that runs the Guix build daemon according to
@@ -1559,7 +1599,10 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
(const %guix-publish-accounts))
(service-extension activation-service-type
guix-publish-activation)))
- (default-value (guix-publish-configuration))))
+ (default-value (guix-publish-configuration))
+ (description
+ "Add a Shepherd service running @command{guix publish}, a
+command that allows you to share pre-built binaries with others over HTTP.")))
(define* (guix-publish-service #:key (guix guix) (port 80) (host "localhost"))
"Return a service that runs @command{guix publish} listening on @var{host}
@@ -1731,7 +1774,11 @@ item of @var{packages}."
(($ <udev-configuration> udev initial-rules)
(udev-configuration
(udev udev)
- (rules (append initial-rules rules)))))))))
+ (rules (append initial-rules rules)))))))
+ (description
+ "Run @command{udev}, which populates the @file{/dev}
+directory dynamically. Get extra rules from the packages listed in the
+@code{rules} field of its value, @code{udev-configuration} object.")))
(define* (udev-service #:key (udev eudev) (rules '()))
"Run @var{udev}, which populates the @file{/dev} directory dynamically. Get
@@ -1802,7 +1849,12 @@ extra rules from the packages listed in @var{rules}."
(service-type (name 'gpm)
(extensions
(list (service-extension shepherd-root-service-type
- gpm-shepherd-service)))))
+ gpm-shepherd-service)))
+ (description
+ "Run GPM, the general-purpose mouse daemon, with the given
+command-line options. GPM allows users to use the mouse in the console,
+notably to select, copy, and paste text. The default options use the
+@code{ps2} protocol, which works for both USB and PS/2 mice.")))
(define* (gpm-service #:key (gpm gpm)
(options '("-m" "/dev/input/mice" "-t" "ps2")))
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 73a30b2402..2ad5952202 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -60,7 +60,7 @@
(database cuirass-configuration-database ;string (file-name)
(default "/var/run/cuirass/cuirass.db"))
(port cuirass-configuration-port ;integer (port)
- (default 8080))
+ (default 8081))
(specifications cuirass-configuration-specifications)
;gexp that evaluates to specification-alist
(use-substitutes? cuirass-configuration-use-substitutes? ;boolean
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 98f1198f2f..527a3101cf 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -732,7 +732,8 @@ seats.)"
;; We need /run/user, /run/systemd, etc.
(service-extension file-system-service-type
- (const %elogind-file-systems))))))
+ (const %elogind-file-systems))))
+ (default-value (elogind-configuration))))
(define* (elogind-service #:key (config (elogind-configuration)))
"Return a service that runs the @command{elogind} login and seat management
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index b45008de64..fbedaa5b35 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -253,7 +253,12 @@ fe80::1%lo0 apps.facebook.com\n")
(service-extension etc-service-type
static-networking-etc-files)))
(compose concatenate)
- (extend append)))
+ (extend append)
+ (description
+ "Turn up the specified network interfaces upon startup,
+with the given IP address, gateway, netmask, and so on. The value for
+services of this type is a list of @code{static-networking} objects, one per
+network interface.")))
(define* (static-networking-service interface ip
#:key
@@ -422,7 +427,11 @@ restrict -6 ::1\n"))
(service-extension account-service-type
(const %ntp-accounts))
(service-extension activation-service-type
- ntp-service-activation)))))
+ ntp-service-activation)))
+ (description
+ "Run the @command{ntpd}, the Network Time Protocol (NTP)
+daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon
+will keep the system clock synchronized with that of the given servers.")))
(define* (ntp-service #:key (ntp ntp)
(servers %ntp-servers)
@@ -520,7 +529,11 @@ make an initial adjustment of more than 1,000 seconds."
(inetd-configuration
(inherit config)
(entries (append (inetd-configuration-entries config)
- entries)))))))
+ entries)))))
+ (description
+ "Start @command{inetd}, the @dfn{Internet superserver}. It is responsible
+for listening on Internet sockets and spawning the corresponding services on
+demand.")))
;;;
@@ -671,7 +684,10 @@ HiddenServicePort ~a ~a~%"
(hidden-services
(append (tor-configuration-hidden-services config)
services)))))
- (default-value (tor-configuration))))
+ (default-value (tor-configuration))
+ (description
+ "Run the @uref{https://torproject.org, Tor} anonymous
+networking daemon.")))
(define* (tor-service #:optional
(config-file (plain-file "empty" ""))
@@ -691,7 +707,9 @@ and lines for hidden services added via @code{tor-hidden-service}. Run
;; A type that extends Tor with hidden services.
(service-type (name 'tor-hidden-service)
(extensions
- (list (service-extension tor-service-type list)))))
+ (list (service-extension tor-service-type list)))
+ (description
+ "Define a new Tor @dfn{hidden service}.")))
(define (tor-hidden-service name mapping)
"Define a new Tor @dfn{hidden service} called @var{name} and implementing
@@ -798,7 +816,10 @@ project's documentation} for more information."
(const %bitlbee-accounts))
(service-extension activation-service-type
(const %bitlbee-activation))))
- (default-value (bitlbee-configuration))))
+ (default-value (bitlbee-configuration))
+ (description
+ "Run @url{http://bitlbee.org,BitlBee}, a daemon that acts as
+a gateway between IRC and chat networks.")))
(define* (bitlbee-service #:key (bitlbee bitlbee)
(interface "127.0.0.1") (port 6667)
@@ -862,7 +883,10 @@ configuration file."
(const %wicd-activation))
;; Add Wicd to the global profile.
- (service-extension profile-service-type list)))))
+ (service-extension profile-service-type list)))
+ (description
+ "Run @url{https://launchpad.net/wicd,Wicd}, a network
+management daemon that aims to simplify wired and wireless networking.")))
(define* (wicd-service #:key (wicd wicd))
"Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
@@ -931,7 +955,11 @@ dns=" dns "
(const %network-manager-activation))
;; Add network-manager to the system profile.
(service-extension profile-service-type config->package)))
- (default-value (network-manager-configuration)))))
+ (default-value (network-manager-configuration))
+ (description
+ "Run @uref{https://wiki.gnome.org/Projects/NetworkManager,
+NetworkManager}, a network management daemon that aims to simplify wired and
+wireless networking."))))
;;;
@@ -985,7 +1013,10 @@ dns=" dns "
connman-activation)
;; Add connman to the system profile.
(service-extension profile-service-type
- connman-package))))))
+ connman-package)))
+ (description
+ "Run @url{https://01.org/connman,Connman},
+a network connection manager."))))
;;;
@@ -1071,6 +1102,10 @@ dns=" dns "
(service-extension profile-service-type
(compose list openvswitch-configuration-package))
(service-extension shepherd-root-service-type
- openvswitch-shepherd-service)))))
+ openvswitch-shepherd-service)))
+ (description
+ "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual
+switch designed to enable massive network automation through programmatic
+extension.")))
;;; networking.scm ends here
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 18278502e4..4aa6fd501c 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -262,7 +262,7 @@ of index files."
(define nginx-activation
(match-lambda
(($ <nginx-configuration> nginx log-directory run-directory server-blocks
- upstream-blocks config-file)
+ upstream-blocks file)
#~(begin
(use-modules (guix build utils))
@@ -281,7 +281,7 @@ of index files."
(mkdir-p (string-append #$run-directory "/logs"))
;; Check configuration file syntax.
(system* (string-append #$nginx "/sbin/nginx")
- "-c" #$(or config-file
+ "-c" #$(or file
(default-nginx-config nginx log-directory
run-directory server-blocks upstream-blocks))
"-t")))))
@@ -289,14 +289,14 @@ of index files."
(define nginx-shepherd-service
(match-lambda
(($ <nginx-configuration> nginx log-directory run-directory server-blocks
- upstream-blocks config-file)
+ upstream-blocks file)
(let* ((nginx-binary (file-append nginx "/sbin/nginx"))
(nginx-action
(lambda args
#~(lambda _
(zero?
(system* #$nginx-binary "-c"
- #$(or config-file
+ #$(or file
(default-nginx-config nginx log-directory
run-directory server-blocks upstream-blocks))
#$@args))))))
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 5a8ee6cd40..6200fa302a 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -135,6 +135,7 @@ Section \"Files\"
ModulePath \"" xf86-input-mouse "/lib/xorg/modules/input\"
ModulePath \"" xf86-input-synaptics "/lib/xorg/modules/input\"
ModulePath \"" xorg-server "/lib/xorg/modules\"
+ ModulePath \"" xorg-server "/lib/xorg/modules/drivers\"
ModulePath \"" xorg-server "/lib/xorg/modules/extensions\"
ModulePath \"" xorg-server "/lib/xorg/modules/multimedia\"
EndSection