diff options
author | Marius Bakke <marius@gnu.org> | 2020-05-26 22:30:51 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-05-26 22:30:51 +0200 |
commit | 9edb3f66fd807b096b48283debdcddccfea34bad (patch) | |
tree | cfd86f44ad51df4341a0d48cf4978117e11d7f59 /gnu/services | |
parent | e5f95fd897ad32c93bb48ceae30021976a917979 (diff) | |
parent | b6d18fbdf6ab4a8821a58aa16587676e835001f2 (diff) | |
download | guix-9edb3f66fd807b096b48283debdcddccfea34bad.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/admin.scm | 6 | ||||
-rw-r--r-- | gnu/services/audio.scm | 1 | ||||
-rw-r--r-- | gnu/services/base.scm | 16 | ||||
-rw-r--r-- | gnu/services/certbot.scm | 2 | ||||
-rw-r--r-- | gnu/services/dbus.scm | 10 | ||||
-rw-r--r-- | gnu/services/desktop.scm | 2 | ||||
-rw-r--r-- | gnu/services/dict.scm | 9 | ||||
-rw-r--r-- | gnu/services/dns.scm | 12 | ||||
-rw-r--r-- | gnu/services/networking.scm | 4 | ||||
-rw-r--r-- | gnu/services/shepherd.scm | 45 | ||||
-rw-r--r-- | gnu/services/sound.scm | 27 | ||||
-rw-r--r-- | gnu/services/ssh.scm | 106 | ||||
-rw-r--r-- | gnu/services/version-control.scm | 2 | ||||
-rw-r--r-- | gnu/services/web.scm | 2 | ||||
-rw-r--r-- | gnu/services/xorg.scm | 14 |
15 files changed, 200 insertions, 58 deletions
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index df3cb01646..89fa73920d 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,8 +72,11 @@ (list (log-rotation ;syslog files (files %rotated-files) + (options '(;; Run post-rotate once per rotation + "sharedscripts" + ;; Append .gz to rotated files + "storefile @FILENAME.@COMP_EXT")) ;; Restart syslogd after rotation. - (options '("sharedscripts")) (post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid" read))) (kill pid SIGHUP)))) diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm index 345d8225b2..37f2efa479 100644 --- a/gnu/services/audio.scm +++ b/gnu/services/audio.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages mpd) #:use-module (guix records) #:use-module (ice-9 match) + #:use-module (ice-9 format) #:export (mpd-output mpd-output? mpd-configuration diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2913478e4a..6ea7ef8e7e 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -47,7 +47,7 @@ #:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools)) #:use-module (gnu packages bash) #:use-module ((gnu packages base) - #:select (canonical-package coreutils glibc glibc-utf8-locales)) + #:select (coreutils glibc glibc-utf8-locales)) #:use-module (gnu packages package-management) #:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) #:use-module (gnu packages linux) @@ -1093,7 +1093,7 @@ the tty to run, among other things." (name-services nscd-configuration-name-services ;list of <packages> (default '())) (glibc nscd-configuration-glibc ;<package> - (default (canonical-package glibc)))) + (default glibc))) (define-record-type* <nscd-cache> nscd-cache make-nscd-cache nscd-cache? @@ -1383,7 +1383,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits @@ -1840,7 +1840,7 @@ archive}). If that is not the case, the service will fail to start." udev-configuration make-udev-configuration udev-configuration? (udev udev-configuration-udev ;<package> - (default eudev/btrfs-fix)) + (default eudev)) (rules udev-configuration-rules ;list of <package> (default '()))) @@ -2038,7 +2038,7 @@ the udev rules in use.") 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/btrfs-fix) (rules '())) +(define* (udev-service #:key (udev eudev) (rules '())) "Run @var{udev}, which populates the @file{/dev} directory dynamically. Get extra rules from the packages listed in @var{rules}." (service udev-service-type @@ -2396,9 +2396,7 @@ to handle." (rules (list lvm2 fuse alsa-utils crda)))) (service special-files-service-type - `(("/bin/sh" ,(file-append (canonical-package bash) - "/bin/sh")) - ("/usr/bin/env" ,(file-append (canonical-package coreutils) - "/bin/env")))))) + `(("/bin/sh" ,(file-append bash "/bin/sh")) + ("/usr/bin/env" ,(file-append coreutils "/bin/env")))))) ;;; base.scm ends here diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm index 3e005918d6..5643340799 100644 --- a/gnu/services/certbot.scm +++ b/gnu/services/certbot.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 ng0 <ng0@n0.is> +;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 7b3c8100e2..e015d3f68d 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -363,7 +363,13 @@ tuples, are all set as environment variables when the bus daemon launches it." (append (polkit-configuration-actions config) actions))))) - (default-value (polkit-configuration)))) + (default-value (polkit-configuration)) + (description + "Run the +@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege +management service}, which allows system administrators to grant access to +privileged operations in a structured way. Polkit is a requirement for most +desktop environments, such as GNOME."))) (define* (polkit-service #:key (polkit polkit)) "Return a service that runs the diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index e165d87c5f..93f2ae576c 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2017 ng0 <ng0@n0.is> +;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net> diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm index 70b05e8f80..519ed3eca2 100644 --- a/gnu/services/dict.scm +++ b/gnu/services/dict.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -174,7 +174,12 @@ database { (const %dicod-activation)) (service-extension shepherd-root-service-type dicod-shepherd-service))) - (default-value (dicod-configuration)))) + (default-value (dicod-configuration)) + (description + "Run @command{dicod}, the dictionary server of +@uref{https://www.gnu.org/software/dico, GNU Dico}. @command{dicod} +implements the standard DICT protocol supported by clients such as +@command{dico} and GNOME Dictionary."))) (define* (dicod-service #:key (config (dicod-configuration))) "Return a service that runs the @command{dicod} daemon, an implementation diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index a07946d085..9caa3611be 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -638,7 +639,10 @@ (service-extension activation-service-type knot-activation) (service-extension account-service-type - (const %knot-accounts)))))) + (const %knot-accounts)))) + (description + "Run @uref{https://www.knot-dns.cz/, Knot}, an authoritative +name server for the @acronym{DNS, Domain Name System}."))) ;;; @@ -748,6 +752,8 @@ cache.size = 100 * MB (default #f)) ;boolean (servers dnsmasq-configuration-servers (default '())) ;list of string + (addresses dnsmasq-configuration-addresses + (default '())) ;list of string (cache-size dnsmasq-configuration-cache-size (default 150)) ;integer (negative-cache? dnsmasq-configuration-negative-cache? @@ -759,7 +765,7 @@ cache.size = 100 * MB no-hosts? port local-service? listen-addresses resolv-file no-resolv? servers - cache-size negative-cache?) + addresses cache-size negative-cache?) (shepherd-service (provision '(dnsmasq)) (requirement '(networking)) @@ -783,6 +789,8 @@ cache.size = 100 * MB '()) #$@(map (cut format #f "--server=~a" <>) servers) + #$@(map (cut format #f "--address=~a" <>) + addresses) #$(format #f "--cache-size=~a" cache-size) #$@(if negative-cache? '() diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 383b2b0d04..d6b0aee357 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -335,7 +335,9 @@ Protocol (DHCP) client, on all the non-loopback network interfaces." (name 'dhcpd) (extensions (list (service-extension shepherd-root-service-type dhcpd-shepherd-service) - (service-extension activation-service-type dhcpd-activation))))) + (service-extension activation-service-type dhcpd-activation))) + (description "Run a DHCP (Dynamic Host Configuration Protocol) daemon. The +daemon is responsible for allocating IP addresses to its client."))) ;;; diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 2f30c6c907..826a3c2215 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au> +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (guix store) #:use-module (guix records) #:use-module (guix derivations) ;imported-modules, etc. + #:use-module (guix utils) #:use-module (gnu services) #:use-module (gnu services herd) #:use-module (gnu packages admin) @@ -105,7 +107,11 @@ (extensions (list (service-extension boot-service-type shepherd-boot-gexp) (service-extension profile-service-type - (const (list shepherd))))))) + (const (list shepherd))))) + (description + "Run the GNU Shepherd as PID 1---i.e., the operating system's first +process. The Shepherd takes care of managing services such as daemons by +ensuring they are started and stopped in the right order."))) (define %shepherd-root-service ;; The root shepherd service, aka. PID 1. Its parameter is a list of @@ -260,22 +266,27 @@ stored." (define (scm->go file) "Compile FILE, which contains code to be loaded by shepherd's config file, and return the resulting '.go' file." - (with-extensions (list shepherd) - (computed-file (string-append (basename (scheme-file-name file) ".scm") - ".go") - #~(begin - (use-modules (system base compile)) - - ;; Do the same as the Shepherd's 'load-in-user-module'. - (let ((env (make-fresh-user-module))) - (module-use! env (resolve-interface '(oop goops))) - (module-use! env (resolve-interface '(shepherd service))) - (compile-file #$file #:output-file #$output - #:env env))) - - ;; It's faster to build locally than to download. - #:options '(#:local-build? #t - #:substitutable? #f)))) + ;; FIXME: %current-target-system may not be bound <https://bugs.gnu.org/29296> + (let ((target (%current-target-system))) + (with-extensions (list shepherd) + (computed-file (string-append (basename (scheme-file-name file) ".scm") + ".go") + #~(begin + (use-modules (system base compile) + (system base target)) + + ;; Do the same as the Shepherd's 'load-in-user-module'. + (let ((env (make-fresh-user-module))) + (module-use! env (resolve-interface '(oop goops))) + (module-use! env (resolve-interface '(shepherd service))) + (with-target #$(or target #~%host-type) + (lambda _ + (compile-file #$file #:output-file #$output + #:env env))))) + + ;; It's faster to build locally than to download. + #:options '(#:local-build? #t + #:substitutable? #f))))) (define (shepherd-configuration-file services) "Return the shepherd configuration file for SERVICES." diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm index a1c928222a..bdf819b422 100644 --- a/gnu/services/sound.scm +++ b/gnu/services/sound.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -127,11 +128,6 @@ ctl.!default { (default (file-append pulseaudio "/etc/pulse/system.pa")))) -(define (pulseaudio-environment config) - `(;; Define these variables, so that pulseaudio honors /etc. - ("PULSE_CONFIG" . "/etc/pulse/daemon.conf") - ("PULSE_CLIENTCONFIG" . "/etc/pulse/client.conf"))) - (define (pulseaudio-conf-entry arg) (match arg ((key . value) @@ -139,21 +135,22 @@ ctl.!default { ((? string? _) (string-append arg "\n")))) +(define pulseaudio-environment + (match-lambda + (($ <pulseaudio-configuration> client-conf daemon-conf default-script-file) + `(("PULSE_CONFIG" . ,(apply mixed-text-file "daemon.conf" + "default-script-file = " default-script-file "\n" + (map pulseaudio-conf-entry daemon-conf))) + ("PULSE_CLIENTCONFIG" . ,(apply mixed-text-file "client.conf" + (map pulseaudio-conf-entry client-conf))))))) + (define pulseaudio-etc (match-lambda - (($ <pulseaudio-configuration> client-conf daemon-conf - default-script-file system-script-file) + (($ <pulseaudio-configuration> _ _ default-script-file system-script-file) `(("pulse" ,(file-union "pulse" - `(("client.conf" - ,(apply mixed-text-file "client.conf" - (map pulseaudio-conf-entry client-conf))) - ("daemon.conf" - ,(apply mixed-text-file "daemon.conf" - "default-script-file = " default-script-file "\n" - (map pulseaudio-conf-entry daemon-conf))) - ("default.pa" ,default-script-file) + `(("default.pa" ,default-script-file) ("system.pa" ,system-script-file)))))))) (define pulseaudio-service-type diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index d2dbb8f80d..ced21c0742 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +46,11 @@ dropbear-configuration dropbear-configuration? dropbear-service-type - dropbear-service)) + dropbear-service + + autossh-configuration + autossh-configuration? + autossh-service-type)) ;;; Commentary: ;;; @@ -628,4 +633,103 @@ daemon} with the given @var{config}, a @code{<dropbear-configuration>} object." (service dropbear-service-type config)) + +;;; +;;; AutoSSH. +;;; + + +(define-record-type* <autossh-configuration> + autossh-configuration make-autossh-configuration + autossh-configuration? + (user autossh-configuration-user + (default "autossh")) + (poll autossh-configuration-poll + (default 600)) + (first-poll autossh-configuration-first-poll + (default #f)) + (gate-time autossh-configuration-gate-time + (default 30)) + (log-level autossh-configuration-log-level + (default 1)) + (max-start autossh-configuration-max-start + (default #f)) + (message autossh-configuration-message + (default "")) + (port autossh-configuration-port + (default "0")) + (ssh-options autossh-configuration-ssh-options + (default '()))) + +(define (autossh-file-name config file) + "Return a path in /var/run/autossh/ that is writable + by @code{user} from @code{config}." + (string-append "/var/run/autossh/" + (autossh-configuration-user config) + "/" file)) + +(define (autossh-shepherd-service config) + (shepherd-service + (documentation "Automatically set up ssh connections (and keep them alive).") + (provision '(autossh)) + (start #~(make-forkexec-constructor + (list #$(file-append autossh "/bin/autossh") + #$@(autossh-configuration-ssh-options config)) + #:user #$(autossh-configuration-user config) + #:group (passwd:gid (getpw #$(autossh-configuration-user config))) + #:pid-file #$(autossh-file-name config "pid") + #:log-file #$(autossh-file-name config "log") + #:environment-variables + '(#$(string-append "AUTOSSH_PIDFILE=" + (autossh-file-name config "pid")) + #$(string-append "AUTOSSH_LOGFILE=" + (autossh-file-name config "log")) + #$(string-append "AUTOSSH_POLL=" + (number->string + (autossh-configuration-poll config))) + #$(string-append "AUTOSSH_FIRST_POLL=" + (number->string + (or + (autossh-configuration-first-poll config) + (autossh-configuration-poll config)))) + #$(string-append "AUTOSSH_GATETIME=" + (number->string + (autossh-configuration-gate-time config))) + #$(string-append "AUTOSSH_LOGLEVEL=" + (number->string + (autossh-configuration-log-level config))) + #$(string-append "AUTOSSH_MAXSTART=" + (number->string + (or (autossh-configuration-max-start config) + -1))) + #$(string-append "AUTOSSH_MESSAGE=" + (autossh-configuration-message config)) + #$(string-append "AUTOSSH_PORT=" + (autossh-configuration-port config))))) + (stop #~(make-kill-destructor)))) + +(define (autossh-service-activation config) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (define %user + (getpw #$(autossh-configuration-user config))) + (let* ((directory #$(autossh-file-name config "")) + (log (string-append directory "/log"))) + (mkdir-p directory) + (chown directory (passwd:uid %user) (passwd:gid %user)) + (call-with-output-file log (const #t)) + (chown log (passwd:uid %user) (passwd:gid %user)))))) + +(define autossh-service-type + (service-type + (name 'autossh) + (description "Automatically set up ssh connections (and keep them alive).") + (extensions + (list (service-extension shepherd-root-service-type + (compose list autossh-shepherd-service)) + (service-extension activation-service-type + autossh-service-activation))) + (default-value (autossh-configuration)))) + ;;; ssh.scm ends here diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index 9d53f9358d..cc07f8025b 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 ng0 <ng0@n0.is> +;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> diff --git a/gnu/services/web.scm b/gnu/services/web.scm index dcbe6ee16f..9fcfe8a0dc 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016 ng0 <ng0@n0.is> +;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2017 nee <nee-git@hidamari.blue> diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index d0196a299e..2505bde97b 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com> ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -31,7 +31,7 @@ #:use-module (gnu system keyboard) #:use-module (gnu services base) #:use-module (gnu services dbus) - #:use-module ((gnu packages base) #:select (canonical-package)) + #:use-module (gnu packages base) #:use-module (gnu packages guile) #:use-module (gnu packages xorg) #:use-module (gnu packages fonts) @@ -619,7 +619,9 @@ reboot_cmd " shepherd "/sbin/reboot\n" (service-extension profile-service-type (const (list xterm))))) - (default-value (slim-configuration))))) + (default-value (slim-configuration)) + (description + "Run the SLiM graphical login manager for X11.")))) (define-deprecated (slim-service #:key (slim slim) (allow-empty-passwords? #t) auto-login? @@ -691,7 +693,11 @@ theme." (list (service-extension pam-root-service-type screen-locker-pam-services) (service-extension setuid-program-service-type - screen-locker-setuid-programs))))) + screen-locker-setuid-programs))) + (description + "Allow the given program to be used as a screen locker for +the graphical server by making it setuid-root, so it can authenticate users, +and by creating a PAM service for it."))) (define* (screen-locker-service package #:optional |