aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-05-26 22:30:51 +0200
committerMarius Bakke <marius@gnu.org>2020-05-26 22:30:51 +0200
commit9edb3f66fd807b096b48283debdcddccfea34bad (patch)
treecfd86f44ad51df4341a0d48cf4978117e11d7f59 /gnu/services
parente5f95fd897ad32c93bb48ceae30021976a917979 (diff)
parentb6d18fbdf6ab4a8821a58aa16587676e835001f2 (diff)
downloadguix-9edb3f66fd807b096b48283debdcddccfea34bad.tar
guix-9edb3f66fd807b096b48283debdcddccfea34bad.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/admin.scm6
-rw-r--r--gnu/services/audio.scm1
-rw-r--r--gnu/services/base.scm16
-rw-r--r--gnu/services/certbot.scm2
-rw-r--r--gnu/services/dbus.scm10
-rw-r--r--gnu/services/desktop.scm2
-rw-r--r--gnu/services/dict.scm9
-rw-r--r--gnu/services/dns.scm12
-rw-r--r--gnu/services/networking.scm4
-rw-r--r--gnu/services/shepherd.scm45
-rw-r--r--gnu/services/sound.scm27
-rw-r--r--gnu/services/ssh.scm106
-rw-r--r--gnu/services/version-control.scm2
-rw-r--r--gnu/services/web.scm2
-rw-r--r--gnu/services/xorg.scm14
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