aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2023-03-20 18:21:47 +0100
committerAndreas Enge <andreas@enge.fr>2023-03-20 18:49:06 +0100
commitccb62d8feb50e2859d7c41429a9e3d9e0fe30bfe (patch)
tree4ab573cee33f277828ad553a22579175b1dda22d /gnu/services
parent098bd280f82350073e8280e37d56a14162eed09c (diff)
parentf80215c7c4ae5ea0c316f4766e6c05ae4218ede3 (diff)
downloadguix-ccb62d8feb50e2859d7c41429a9e3d9e0fe30bfe.tar
guix-ccb62d8feb50e2859d7c41429a9e3d9e0fe30bfe.tar.gz
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/base.scm116
-rw-r--r--gnu/services/dbus.scm11
-rw-r--r--gnu/services/desktop.scm112
-rw-r--r--gnu/services/dict.scm6
-rw-r--r--gnu/services/dns.scm128
-rw-r--r--gnu/services/lirc.scm18
-rw-r--r--gnu/services/mail.scm9
-rw-r--r--gnu/services/networking.scm139
-rw-r--r--gnu/services/sound.scm16
-rw-r--r--gnu/services/spice.scm7
-rw-r--r--gnu/services/ssh.scm74
-rw-r--r--gnu/services/vpn.scm19
-rw-r--r--gnu/services/xorg.scm47
13 files changed, 422 insertions, 280 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 7ad1e765bd..190bb8fe24 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -99,7 +99,8 @@
file-system-service-type
file-system-utilities
swap-service
- host-name-service
+ host-name-service ; deprecated
+ host-name-service-type
%default-console-font
console-font-service-type
console-font-service
@@ -149,7 +150,7 @@
udev-configuration?
udev-configuration-rules
udev-service-type
- udev-service
+ udev-service ; deprecated
udev-rule
file->udev-rule
udev-rules-service
@@ -157,11 +158,11 @@
login-configuration
login-configuration?
login-service-type
- login-service
+ login-service ; deprecated
agetty-configuration
agetty-configuration?
- agetty-service
+ agetty-service ; deprecated
agetty-service-type
mingetty-configuration
@@ -172,11 +173,11 @@
mingetty-configuration-clear-on-logout?
mingetty-configuration-mingetty
mingetty-configuration?
- mingetty-service
+ mingetty-service ; deprecated
mingetty-service-type
%nscd-default-caches
- %nscd-default-configuration
+ %nscd-default-configuration ; deprecated
nscd-configuration
nscd-configuration?
@@ -185,11 +186,11 @@
nscd-cache?
nscd-service-type
- nscd-service
+ nscd-service ; deprecated
syslog-configuration
syslog-configuration?
- syslog-service
+ syslog-service ; deprecated
syslog-service-type
%default-syslog.conf
@@ -238,7 +239,7 @@
rngd-configuration
rngd-configuration?
rngd-service-type
- rngd-service
+ rngd-service ; deprecated
kmscon-configuration
kmscon-configuration?
@@ -661,8 +662,10 @@ down.")))
(define-record-type* <rngd-configuration>
rngd-configuration make-rngd-configuration
rngd-configuration?
- (rng-tools rngd-configuration-rng-tools) ;file-like
- (device rngd-configuration-device)) ;string
+ (rng-tools rngd-configuration-rng-tools ;file-like
+ (default rng-tools))
+ (device rngd-configuration-device ;string
+ (default "/dev/hwrng")))
(define rngd-service-type
(shepherd-service-type
@@ -681,12 +684,13 @@ down.")))
(provision '(trng))
(start #~(make-forkexec-constructor '#$rngd-command))
(stop #~(make-kill-destructor))))
+ (rngd-configuration)
(description "Run the @command{rngd} random number generation daemon to
supply entropy to the kernel's pool.")))
-(define* (rngd-service #:key
- (rng-tools rng-tools)
- (device "/dev/hwrng"))
+(define-deprecated (rngd-service #:key (rng-tools rng-tools)
+ (device "/dev/hwrng"))
+ rngd-service-type
"Return a service that runs the @command{rngd} program from @var{rng-tools}
to add @var{device} to the kernel's entropy pool. The service will fail if
@var{device} does not exist."
@@ -778,7 +782,8 @@ host names."
(one-shot? #t)))
(description "Initialize the machine's host name.")))
-(define (host-name-service name)
+(define-deprecated (host-name-service name)
+ host-name-service-type
"Return a service that sets the host name to @var{name}."
(service host-name-service-type name))
@@ -868,7 +873,7 @@ of console keymaps with @command{loadkeys}.")))
"-C" #$device #$font))
((0 71) #t)
(else #f))))
- (stop #~(const #t))
+ (stop #~(const #f))
(respawn? #f)))))
tty+font))
@@ -935,7 +940,8 @@ Return a service that sets up Unicode support in @var{tty} and loads
"Provide a console log-in service as specified by its
configuration value, a @code{login-configuration} object.")))
-(define* (login-service #:optional (config (login-configuration)))
+(define-deprecated (login-service #:optional (config (login-configuration)))
+ login-service-type
"Return a service configure login according to @var{config}, which specifies
the message of the day, among other things."
(service login-service-type config))
@@ -1207,7 +1213,8 @@ to use as the tty. This is primarily useful for headless systems."
"Provide console login using the @command{agetty}
program.")))
-(define* (agetty-service config)
+(define-deprecated (agetty-service config)
+ agetty-service-type
"Return a service to run agetty according to @var{config}, which specifies
the tty to run, among other things."
(service agetty-service-type config))
@@ -1272,7 +1279,8 @@ the tty to run, among other things."
"Provide console login using the @command{mingetty}
program.")))
-(define* (mingetty-service config)
+(define-deprecated (mingetty-service config)
+ mingetty-service-type
"Return a service to run mingetty according to @var{config}, which specifies
the tty to run, among other things."
(service mingetty-service-type config))
@@ -1338,7 +1346,8 @@ the tty to run, among other things."
(check-files? #t) ;check /etc/services changes
(persistent? #t))))
-(define %nscd-default-configuration
+(define-deprecated %nscd-default-configuration
+ #f
;; Default nscd configuration.
(nscd-configuration))
@@ -1492,18 +1501,45 @@ the tty to run, among other things."
(name-services (append
(nscd-configuration-name-services config)
name-services)))))
- (default-value %nscd-default-configuration)
+ (default-value (nscd-configuration))
(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))
+(define-deprecated (nscd-service #:optional (config (nscd-configuration)))
+ nscd-service-type
"Return a service that runs libc's name service cache daemon (nscd) with the
given @var{config}---an @code{<nscd-configuration>} object. @xref{Name
Service Switch}, for an example."
(service nscd-service-type config))
+;; Snippet adapted from the GNU inetutils manual.
+(define %default-syslog.conf
+ (plain-file "syslog.conf" "
+ # Log all error messages, authentication messages of
+ # level notice or higher and anything of level err or
+ # higher to the console.
+ # Don't log private authentication messages!
+ *.alert;auth.notice;authpriv.none -/dev/console
+
+ # Log anything (except mail) of level info or higher.
+ # Don't log private authentication messages!
+ *.info;mail.none;authpriv.none -/var/log/messages
+
+ # Log \"debug\"-level entries and nothing else.
+ *.=debug -/var/log/debug
+
+ # Same, in a different place.
+ *.info;mail.none;authpriv.none -/dev/tty12
+
+ # The authpriv file has restricted access.
+ # 'fsync' the file after each line (hence the lack of a leading dash).
+ authpriv.* /var/log/secure
+
+ # Log all the mail messages in one place.
+ mail.* -/var/log/maillog
+"))
(define-record-type* <syslog-configuration>
syslog-configuration make-syslog-configuration
@@ -1533,37 +1569,12 @@ Service Switch}, for an example."
(umask mask)
pid))))
(stop #~(make-kill-destructor))))
+ (syslog-configuration)
(description "Run the syslog daemon, @command{syslogd}, which is
responsible for logging system messages.")))
-;; Snippet adapted from the GNU inetutils manual.
-(define %default-syslog.conf
- (plain-file "syslog.conf" "
- # Log all error messages, authentication messages of
- # level notice or higher and anything of level err or
- # higher to the console.
- # Don't log private authentication messages!
- *.alert;auth.notice;authpriv.none -/dev/console
-
- # Log anything (except mail) of level info or higher.
- # Don't log private authentication messages!
- *.info;mail.none;authpriv.none -/var/log/messages
-
- # Log \"debug\"-level entries and nothing else.
- *.=debug -/var/log/debug
-
- # Same, in a different place.
- *.info;mail.none;authpriv.none -/dev/tty12
-
- # The authpriv file has restricted access.
- # 'fsync' the file after each line (hence the lack of a leading dash).
- authpriv.* /var/log/secure
-
- # Log all the mail messages in one place.
- mail.* -/var/log/maillog
-"))
-
-(define* (syslog-service #:optional (config (syslog-configuration)))
+(define-deprecated (syslog-service #:optional (config (syslog-configuration)))
+ syslog-service-type
"Return a service that runs @command{syslogd} and takes
@var{<syslog-configuration>} as a parameter.
@@ -2343,7 +2354,8 @@ item of @var{packages}."
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 '()))
+(define-deprecated (udev-service #:key (udev eudev) (rules '()))
+ udev-service-type
"Run @var{udev}, which populates the @file{/dev} directory dynamically. Get
extra rules from the packages listed in @var{rules}."
(service udev-service-type
@@ -3287,7 +3299,7 @@ login manager daemon.")
(cons tty %default-console-font))
'("tty1" "tty2" "tty3" "tty4" "tty5" "tty6")))
- (syslog-service)
+ (service syslog-service-type)
(service agetty-service-type (agetty-configuration
(extra-options '("-L")) ; no carrier detect
(term "vt100")
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 4b56b8f3eb..5a0c634393 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -28,6 +28,7 @@
#:use-module ((gnu packages glib) #:select (dbus))
#:use-module (gnu packages polkit)
#:use-module (gnu packages admin)
+ #:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module ((guix packages) #:select (package-name))
#:use-module (guix records)
@@ -37,13 +38,13 @@
#:export (dbus-configuration
dbus-configuration?
dbus-root-service-type
- dbus-service
+ dbus-service ; deprecated
wrapped-dbus-service
polkit-configuration
polkit-configuration?
polkit-service-type
- polkit-service))
+ polkit-service)) ; deprecated
;;;
;;; D-Bus.
@@ -244,7 +245,8 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in
bus. It allows programs and daemons to communicate and is also responsible
for spawning (@dfn{activating}) D-Bus services on demand.")))
-(define* (dbus-service #:key (dbus dbus) (services '()) verbose?)
+(define-deprecated (dbus-service #:key (dbus dbus) (services '()) verbose?)
+ dbus-root-service-type
"Return a service that runs the \"system bus\", using @var{dbus}, with
support for @var{services}. When @var{verbose?} is true, it causes the
@samp{DBUS_VERBOSE} environment variable to be set to @samp{1}; a
@@ -395,7 +397,8 @@ 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))
+(define-deprecated (polkit-service #:key (polkit polkit))
+ polkit-service-type
"Return a service that runs the
@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege
management service}, which allows system administrators to grant access to
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4724294433..c0178135b0 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -97,7 +97,7 @@
udisks-configuration
udisks-configuration?
- udisks-service
+ udisks-service ; deprecated
udisks-service-type
colord-service-type
@@ -106,17 +106,17 @@
geoclue-configuration
geoclue-configuration?
%standard-geoclue-applications
- geoclue-service
+ geoclue-service ; deprecated
geoclue-service-type
bluetooth-service-type
bluetooth-configuration
bluetooth-configuration?
- bluetooth-service
+ bluetooth-service ; deprecated
elogind-configuration
elogind-configuration?
- elogind-service
+ elogind-service ; deprecated
elogind-service-type
%gdm-file-system
@@ -126,7 +126,7 @@
fontconfig-file-system-service
accountsservice-service-type
- accountsservice-service
+ accountsservice-service ; deprecated
cups-pk-helper-service-type
sane-service-type
@@ -318,19 +318,6 @@ used by GNOME.")
;;; GeoClue D-Bus service.
;;;
-;; TODO: Export.
-(define-record-type* <geoclue-configuration>
- geoclue-configuration make-geoclue-configuration
- geoclue-configuration?
- (geoclue geoclue-configuration-geoclue
- (default geoclue))
- (whitelist geoclue-configuration-whitelist)
- (wifi-geolocation-url geoclue-configuration-wifi-geolocation-url)
- (submit-data? geoclue-configuration-submit-data?)
- (wifi-submission-url geoclue-configuration-wifi-submission-url)
- (submission-nick geoclue-configuration-submission-nick)
- (applications geoclue-configuration-applications))
-
(define* (geoclue-application name #:key (allowed? #t) system? (users '()))
"Configure default GeoClue access permissions for an application. NAME is
the Desktop ID of the application, without the .desktop part. If ALLOWED? is
@@ -350,6 +337,28 @@ users are allowed."
(geoclue-application "epiphany" #:system? #f)
(geoclue-application "firefox" #:system? #f)))
+;; TODO: Use define-configuration and export accessors.
+(define-record-type* <geoclue-configuration>
+ geoclue-configuration make-geoclue-configuration
+ geoclue-configuration?
+ (geoclue geoclue-configuration-geoclue
+ (default geoclue))
+ (whitelist geoclue-configuration-whitelist
+ (default '()))
+ (wifi-geolocation-url
+ geoclue-configuration-wifi-geolocation-url
+ ;; Mozilla geolocation service:
+ (default "https://location.services.mozilla.com/v1/geolocate?key=geoclue"))
+ (submit-data? geoclue-configuration-submit-data?
+ (default #f))
+ (wifi-submission-url
+ geoclue-configuration-wifi-submission-url
+ (default "https://location.services.mozilla.com/v1/submit?key=geoclue"))
+ (submission-nick geoclue-configuration-submission-nick
+ (default "geoclue"))
+ (applications geoclue-configuration-applications
+ (default %standard-geoclue-applications)))
+
(define* (geoclue-configuration-file config)
"Return a geoclue configuration file."
(plain-file "geoclue.conf"
@@ -395,18 +404,21 @@ users are allowed."
(description "Run the @command{geoclue} location service.
This service provides a D-Bus interface to allow applications to request
access to a user's physical location, and optionally to add information to
-online location databases.")))
-
-(define* (geoclue-service #:key (geoclue geoclue)
- (whitelist '())
- (wifi-geolocation-url
- ;; Mozilla geolocation service:
- "https://location.services.mozilla.com/v1/geolocate?key=geoclue")
- (submit-data? #f)
- (wifi-submission-url
- "https://location.services.mozilla.com/v1/submit?key=geoclue")
- (submission-nick "geoclue")
- (applications %standard-geoclue-applications))
+online location databases.")
+ (default-value (geoclue-configuration))))
+
+(define-deprecated
+ (geoclue-service #:key (geoclue geoclue)
+ (whitelist '())
+ (wifi-geolocation-url
+ ;; Mozilla geolocation service:
+ "https://location.services.mozilla.com/v1/geolocate?key=geoclue")
+ (submit-data? #f)
+ (wifi-submission-url
+ "https://location.services.mozilla.com/v1/submit?key=geoclue")
+ (submission-nick "geoclue")
+ (applications %standard-geoclue-applications))
+ geoclue-service-type
"Return a service that runs the @command{geoclue} location service. This
service provides a D-Bus interface to allow applications to request access to
a user's physical location, and optionally to add information to online
@@ -848,7 +860,8 @@ site} for more information."
(description "Run the @command{bluetoothd} daemon, which manages all the
Bluetooth devices and provides a number of D-Bus interfaces.")))
-(define* (bluetooth-service #:key (bluez bluez) (auto-enable? #f))
+(define-deprecated (bluetooth-service #:key (bluez bluez) (auto-enable? #f))
+ bluetooth-service-type
"Return a service that runs the @command{bluetoothd} daemon, which manages
all the Bluetooth devices and provides a number of D-Bus interfaces. When
AUTO-ENABLE? is true, the bluetooth controller is powered automatically at
@@ -945,9 +958,11 @@ screens and scanners.")))
(description "Run UDisks, a @dfn{disk management} daemon
that provides user interfaces with notifications and ways to mount/unmount
disks. Programs that talk to UDisks include the @command{udisksctl} command,
-part of UDisks, and GNOME Disks."))))
+part of UDisks, and GNOME Disks.")
+ (default-value (udisks-configuration)))))
-(define* (udisks-service #:key (udisks udisks))
+(define-deprecated (udisks-service #:key (udisks udisks))
+ udisks-service-type
"Return a service for @uref{http://udisks.freedesktop.org/docs/latest/,
UDisks}, a @dfn{disk management} daemon that provides user interfaces with
notifications and ways to mount/unmount disks. Programs that talk to UDisks
@@ -978,11 +993,7 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
(handle-suspend-key elogind-handle-suspend-key
(default 'suspend))
(handle-hibernate-key elogind-handle-hibernate-key
- ;; (default 'hibernate)
- ;; XXX Ignore it for now, since we don't
- ;; yet handle resume-from-hibernation in
- ;; our initrd.
- (default 'ignore))
+ (default 'hibernate))
(handle-lid-switch elogind-handle-lid-switch
(default 'suspend))
(handle-lid-switch-docked elogind-handle-lid-switch-docked
@@ -1230,7 +1241,8 @@ allow other system components to know the set of logged-in users as well as
their session types (graphical, console, remote, etc.). It can also clean up
after users when they log out.")))
-(define* (elogind-service #:key (config (elogind-configuration)))
+(define-deprecated (elogind-service #:key (config (elogind-configuration)))
+ elogind-service-type
"Return a service that runs the @command{elogind} login and seat management
service. The @command{elogind} service integrates with PAM to allow other
system components to know the set of logged-in users as well as their session
@@ -1298,7 +1310,9 @@ over D-Bus that can list available accounts, change their passwords, and so
on. AccountsService integrates with PolicyKit to enable unprivileged users to
acquire the capability to modify their system configuration.")))
-(define* (accountsservice-service #:key (accountsservice accountsservice))
+(define-deprecated
+ (accountsservice-service #:key (accountsservice accountsservice))
+ accountsservice-service-type
"Return a service that runs AccountsService, a system service that
can list available accounts, change their passwords, and so on.
AccountsService integrates with PolicyKit to enable unprivileged users to
@@ -1818,8 +1832,12 @@ applications needing access to be root.")
(service sddm-service-type))
;; Screen lockers are a pretty useful thing and these are small.
- (screen-locker-service slock)
- (screen-locker-service xlockmore "xlock")
+ (service screen-locker-service-type
+ (screen-locker-configuration
+ "slock" (file-append slock "/bin/slock") #f))
+ (service screen-locker-service-type
+ (screen-locker-configuration
+ "xlock" (file-append xlockmore "/bin/xlock") #f))
;; Add udev rules for MTP devices so that non-root users can access
;; them.
@@ -1859,15 +1877,15 @@ applications needing access to be root.")
;; The D-Bus clique.
(service avahi-service-type)
- (udisks-service)
+ (service udisks-service-type)
(service upower-service-type)
- (accountsservice-service)
+ (service accountsservice-service-type)
(service cups-pk-helper-service-type)
(service colord-service-type)
- (geoclue-service)
+ (service geoclue-service-type)
(service polkit-service-type)
- (elogind-service)
- (dbus-service)
+ (service elogind-service-type)
+ (service dbus-root-service-type)
(service ntp-service-type)
diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm
index 35253a0077..5a61085316 100644
--- a/gnu/services/dict.scm
+++ b/gnu/services/dict.scm
@@ -19,6 +19,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services dict)
+ #:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (guix modules)
@@ -34,7 +35,7 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
- #:export (dicod-service
+ #:export (dicod-service ; deprecated
dicod-service-type
dicod-configuration
dicod-handler
@@ -202,7 +203,8 @@ database {
implements the standard DICT protocol supported by clients such as
@command{dico} and GNOME Dictionary.")))
-(define* (dicod-service #:key (config (dicod-configuration)))
+(define-deprecated (dicod-service #:key (config (dicod-configuration)))
+ dicod-service-type
"Return a service that runs the @command{dicod} daemon, an implementation
of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 50753b7ab6..2ff9f90cd0 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -114,7 +114,7 @@
(serial zone-file-serial
(default 1))
(refresh zone-file-refresh
- (default (* 2 24 3600)))
+ (default (* 12 3600)))
(retry zone-file-retry
(default (* 15 60)))
(expiry zone-file-expiry
@@ -754,6 +754,8 @@ cache.size = 100 * MB
(default #f)) ;boolean
(servers dnsmasq-configuration-servers
(default '())) ;list of string
+ (servers-file dnsmasq-configuration-servers-file
+ (default #f)) ;string|file-like
(addresses dnsmasq-configuration-addresses
(default '())) ;list of string
(cache-size dnsmasq-configuration-cache-size
@@ -761,7 +763,7 @@ cache.size = 100 * MB
(negative-cache? dnsmasq-configuration-negative-cache?
(default #t)) ;boolean
(cpe-id dnsmasq-configuration-cpe-id
- (default #t)) ;string
+ (default #f)) ;string
(tftp-enable? dnsmasq-configuration-tftp-enable?
(default #f)) ;boolean
(tftp-no-fail? dnsmasq-configuration-tftp-no-fail?
@@ -792,7 +794,7 @@ cache.size = 100 * MB
port local-service? listen-addresses
resolv-file no-resolv?
forward-private-reverse-lookup? query-servers-in-order?
- servers addresses
+ servers addresses servers-file
cache-size negative-cache?
cpe-id
tftp-enable? tftp-no-fail?
@@ -805,76 +807,80 @@ cache.size = 100 * MB
(requirement '(networking))
(documentation "Run the dnsmasq DNS server.")
(start #~(make-forkexec-constructor
- '(#$(file-append package "/sbin/dnsmasq")
- "--keep-in-foreground"
- "--pid-file=/run/dnsmasq.pid"
- #$@(if no-hosts?
- '("--no-hosts")
+ (list
+ #$(file-append package "/sbin/dnsmasq")
+ "--keep-in-foreground"
+ "--pid-file=/run/dnsmasq.pid"
+ #$@(if no-hosts?
+ '("--no-hosts")
'())
- #$(format #f "--port=~a" port)
- #$@(if local-service?
- '("--local-service")
+ #$(format #f "--port=~a" port)
+ #$@(if local-service?
+ '("--local-service")
'())
- #$@(map (cut format #f "--listen-address=~a" <>)
- listen-addresses)
- #$(format #f "--resolv-file=~a" resolv-file)
- #$@(if no-resolv?
- '("--no-resolv")
+ #$@(map (cut format #f "--listen-address=~a" <>)
+ listen-addresses)
+ #$(format #f "--resolv-file=~a" resolv-file)
+ #$@(if no-resolv?
+ '("--no-resolv")
'())
- #$@(if forward-private-reverse-lookup?
- '()
+ #$@(if forward-private-reverse-lookup?
+ '()
'("--bogus-priv"))
- #$@(if query-servers-in-order?
- '("--strict-order")
+ #$@(if query-servers-in-order?
+ '("--strict-order")
'())
- #$@(map (cut format #f "--server=~a" <>)
- servers)
- #$@(map (cut format #f "--address=~a" <>)
- addresses)
- #$(format #f "--cache-size=~a" cache-size)
- #$@(if negative-cache?
- '()
+ #$@(if servers-file
+ (list #~(string-append "--servers-file=" #$servers-file))
+ '())
+ #$@(map (cut format #f "--server=~a" <>)
+ servers)
+ #$@(map (cut format #f "--address=~a" <>)
+ addresses)
+ #$(format #f "--cache-size=~a" cache-size)
+ #$@(if negative-cache?
+ '()
'("--no-negcache"))
- #$@(if cpe-id
- (list (format #f "--add-cpe-id=~a" cpe-id))
- '())
- #$@(if tftp-enable?
- '("--enable-tftp")
- '())
- #$@(if tftp-no-fail?
- '("--tftp-no-fail")
- '())
- #$@(if tftp-single-port?
- '("--tftp-single-port")
- '())
- #$@(if tftp-secure?
- '("--tftp-secure?")
- '())
- #$@(if tftp-max
- (list (format #f "--tftp-max=~a" tftp-max))
+ #$@(if cpe-id
+ (list (format #f "--add-cpe-id=~a" cpe-id))
+ '())
+ #$@(if tftp-enable?
+ '("--enable-tftp")
'())
- #$@(if tftp-mtu
- (list (format #f "--tftp-mtu=~a" tftp-mtu))
+ #$@(if tftp-no-fail?
+ '("--tftp-no-fail")
'())
- #$@(if tftp-no-blocksize?
- '("--tftp-no-blocksize")
+ #$@(if tftp-single-port?
+ '("--tftp-single-port")
'())
- #$@(if tftp-lowercase?
- '("--tftp-lowercase")
+ #$@(if tftp-secure?
+ '("--tftp-secure")
'())
- #$@(if tftp-port-range
- (list (format #f "--tftp-port-range=~a"
- tftp-port-range))
+ #$@(if tftp-max
+ (list (format #f "--tftp-max=~a" tftp-max))
+ '())
+ #$@(if tftp-mtu
+ (list (format #f "--tftp-mtu=~a" tftp-mtu))
+ '())
+ #$@(if tftp-no-blocksize?
+ '("--tftp-no-blocksize")
'())
- #$@(if tftp-root
- (list (format #f "--tftp-root=~a" tftp-root))
+ #$@(if tftp-lowercase?
+ '("--tftp-lowercase")
'())
- #$@(if tftp-unique-root
- (list
- (if (> (length tftp-unique-root) 0)
- (format #f "--tftp-unique-root=~a" tftp-unique-root)
- (format #f "--tftp-unique-root")))
- '()))
+ #$@(if tftp-port-range
+ (list (format #f "--tftp-port-range=~a"
+ tftp-port-range))
+ '())
+ #$@(if tftp-root
+ (list (format #f "--tftp-root=~a" tftp-root))
+ '())
+ #$@(if tftp-unique-root
+ (list
+ (if (> (length tftp-unique-root) 0)
+ (format #f "--tftp-unique-root=~a" tftp-unique-root)
+ (format #f "--tftp-unique-root")))
+ '()))
#:pid-file "/run/dnsmasq.pid"))
(stop #~(make-kill-destructor)))))
diff --git a/gnu/services/lirc.scm b/gnu/services/lirc.scm
index 492d77defa..92784b65ca 100644
--- a/gnu/services/lirc.scm
+++ b/gnu/services/lirc.scm
@@ -21,12 +21,13 @@
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (gnu packages lirc)
+ #:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (ice-9 match)
#:export (lirc-configuration
lirc-configuation?
- lirc-service
+ lirc-service ; deprecated
lirc-service-type))
;;; Commentary:
@@ -40,9 +41,12 @@
lirc-configuation?
(lirc lirc-configuration-lirc ;file-like
(default lirc))
- (device lirc-configuration-device) ;string
- (driver lirc-configuration-driver) ;string
- (config-file lirc-configuration-file) ;string | file-like object
+ (device lirc-configuration-device ;string
+ (default #f))
+ (driver lirc-configuration-driver ;string
+ (default #f))
+ (config-file lirc-configuration-file ;string | file-like object
+ (default #f))
(extra-options lirc-configuration-options ;list of strings
(default '())))
@@ -81,11 +85,13 @@
(service-extension activation-service-type
(const %lirc-activation))))
(description "Run LIRC, a daemon that decodes infrared signals
-from remote controls.")))
+from remote controls.")
+ (default-value (lirc-configuration))))
-(define* (lirc-service #:key (lirc lirc)
+(define-deprecated (lirc-service #:key (lirc lirc)
device driver config-file
(extra-options '()))
+ lirc-service-type
"Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that
decodes infrared signals from remote controls.
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 6f588679b1..bf4948dcfb 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -35,6 +35,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages dav)
#:use-module (gnu packages tls)
+ #:use-module (guix deprecation)
#:use-module (guix modules)
#:use-module (guix records)
#:use-module (guix packages)
@@ -42,7 +43,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (srfi srfi-1)
- #:export (dovecot-service
+ #:export (dovecot-service ; deprecated
dovecot-service-type
dovecot-configuration
opaque-dovecot-configuration
@@ -1601,9 +1602,11 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(service-extension activation-service-type
%dovecot-activation)))
(description "Run Dovecot, a mail server that can run POP3,
-IMAP, and LMTP.")))
+IMAP, and LMTP.")
+ (default-value (dovecot-configuration))))
-(define* (dovecot-service #:key (config (dovecot-configuration)))
+(define-deprecated (dovecot-service #:key (config (dovecot-configuration)))
+ dovecot-service-type
"Return a service that runs @command{dovecot}, a mail server that can run
POP3, IMAP, and LMTP. @var{config} should be a configuration object created
by @code{dovecot-configuration}. @var{config} may also be created by
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index dacf64c2d1..4632498357 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -143,12 +143,17 @@
network-manager-configuration
network-manager-configuration?
+ network-manager-configuration-shepherd-requirement
network-manager-configuration-dns
network-manager-configuration-vpn-plugins
network-manager-service-type
connman-configuration
connman-configuration?
+ connman-configuration-connman
+ connman-configuration-shepherd-requirement
+ connman-configuration-disable-vpn?
+ connman-configuration-iwd?
connman-service-type
modem-manager-configuration
@@ -1135,16 +1140,29 @@ project's documentation} for more information."
;;; NetworkManager
;;;
+;; TODO: deprecated field, remove later.
+(define-with-syntax-properties (warn-iwd?-field-deprecation
+ (value properties))
+ (when value
+ (warning (source-properties->location properties)
+ (G_ "the 'iwd?' field is deprecated, please use \
+'shepherd-requirement' field instead~%")))
+ value)
+
(define-record-type* <network-manager-configuration>
network-manager-configuration make-network-manager-configuration
network-manager-configuration?
(network-manager network-manager-configuration-network-manager
(default network-manager))
+ (shepherd-requirement network-manager-configuration-shepherd-requirement
+ (default '(wpa-supplicant)))
(dns network-manager-configuration-dns
(default "default"))
(vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
(default '()))
- (iwd? network-manager-configuration-iwd? (default #f)))
+ (iwd? network-manager-configuration-iwd? ; TODO: deprecated field, remove.
+ (default #f)
+ (sanitize warn-iwd?-field-deprecation)))
(define (network-manager-activation config)
;; Activation gexp for NetworkManager
@@ -1200,28 +1218,47 @@ project's documentation} for more information."
(define (network-manager-shepherd-service config)
(match-record config <network-manager-configuration>
- (network-manager dns vpn-plugins iwd?)
- (let ((conf (plain-file "NetworkManager.conf"
- (string-append
- "[main]\ndns=" dns "\n"
- (if iwd? "[device]\nwifi.backend=iwd\n" ""))))
- (vpn (vpn-plugin-directory vpn-plugins)))
+ (network-manager shepherd-requirement dns vpn-plugins iwd?)
+ (let* ((iwd? (or iwd? ; TODO: deprecated field, remove later.
+ (and shepherd-requirement
+ (memq 'iwd shepherd-requirement))))
+ (conf (plain-file "NetworkManager.conf"
+ (string-append
+ "[main]\ndns=" dns "\n"
+ (if iwd? "[device]\nwifi.backend=iwd\n" ""))))
+ (vpn (vpn-plugin-directory vpn-plugins)))
(list (shepherd-service
(documentation "Run the NetworkManager.")
- (provision '(networking))
- (requirement (append '(user-processes dbus-system loopback)
- (if iwd? '(iwd) '(wpa-supplicant))))
- (start #~(make-forkexec-constructor
- (list (string-append #$network-manager
- "/sbin/NetworkManager")
- (string-append "--config=" #$conf)
- "--no-daemon")
- #:environment-variables
- (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
- "/lib/NetworkManager/VPN")
- ;; Override non-existent default users
- "NM_OPENVPN_USER="
- "NM_OPENVPN_GROUP=")))
+ (provision '(NetworkManager networking))
+ (requirement `(user-processes dbus-system loopback
+ ,@shepherd-requirement
+ ;; TODO: iwd? is deprecated and should be passed
+ ;; with shepherd-requirement, remove later.
+ ,@(if iwd? '(iwd) '())))
+ (start
+ #~(lambda _
+ (let ((pid
+ (fork+exec-command
+ (list #$(file-append network-manager
+ "/sbin/NetworkManager")
+ (string-append "--config=" #$conf)
+ "--no-daemon")
+ #:environment-variables
+ (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
+ "/lib/NetworkManager/VPN")
+ ;; Override non-existent default users
+ "NM_OPENVPN_USER="
+ "NM_OPENVPN_GROUP="))))
+ ;; XXX: Despite the "online" name, this doesn't guarantee
+ ;; WAN connectivity, it merely waits for NetworkManager
+ ;; to finish starting-up. This is required otherwise
+ ;; services will fail since the network interfaces be
+ ;; absent until NetworkManager finishes setting them up.
+ (system* #$(file-append network-manager "/bin/nm-online")
+ "--wait-for-startup" "--quiet")
+ ;; XXX: Finally, return the pid from running
+ ;; fork+exec-command to shepherd.
+ pid)))
(stop #~(make-kill-destructor)))))))
(define network-manager-service-type
@@ -1265,10 +1302,13 @@ wireless networking."))))
connman-configuration?
(connman connman-configuration-connman
(default connman))
+ (shepherd-requirement connman-configuration-shepherd-requirement
+ (default '()))
(disable-vpn? connman-configuration-disable-vpn?
(default #f))
(iwd? connman-configuration-iwd?
- (default #f)))
+ (default #f)
+ (sanitize warn-iwd?-field-deprecation)))
(define (connman-activation config)
(let ((disable-vpn? (connman-configuration-disable-vpn? config)))
@@ -1280,33 +1320,34 @@ wireless networking."))))
(mkdir-p "/var/lib/connman-vpn/"))))))
(define (connman-shepherd-service config)
- "Return a shepherd service for Connman"
- (and
- (connman-configuration? config)
- (let ((connman (connman-configuration-connman config))
- (disable-vpn? (connman-configuration-disable-vpn? config))
- (iwd? (connman-configuration-iwd? config)))
- (list (shepherd-service
- (documentation "Run Connman")
- (provision '(networking))
- (requirement
- (append '(user-processes dbus-system loopback)
- (if iwd? '(iwd) '())))
- (start #~(make-forkexec-constructor
- (list (string-append #$connman
- "/sbin/connmand")
- "--nodaemon"
- "--nodnsproxy"
- #$@(if disable-vpn? '("--noplugin=vpn") '())
- #$@(if iwd? '("--wifi=iwd_agent") '()))
-
- ;; As connman(8) notes, when passing '-n', connman
- ;; "directs log output to the controlling terminal in
- ;; addition to syslog." Redirect stdout and stderr
- ;; to avoid spamming the console (XXX: for some reason
- ;; redirecting to /dev/null doesn't work.)
- #:log-file "/var/log/connman.log"))
- (stop #~(make-kill-destructor)))))))
+ (match-record config <connman-configuration> (connman shepherd-requirement
+ disable-vpn? iwd?)
+ (let ((iwd? (or iwd? ; TODO: deprecated field, remove later.
+ (and shepherd-requirement
+ (memq 'iwd shepherd-requirement)))))
+ (list (shepherd-service
+ (documentation "Run Connman")
+ (provision '(connman networking))
+ (requirement `(user-processes dbus-system loopback
+ ,@shepherd-requirement
+ ;; TODO: iwd? is deprecated and should be passed
+ ;; with shepherd-requirement, remove later.
+ ,@(if iwd? '(iwd) '())))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$connman
+ "/sbin/connmand")
+ "--nodaemon"
+ "--nodnsproxy"
+ #$@(if disable-vpn? '("--noplugin=vpn") '())
+ #$@(if iwd? '("--wifi=iwd_agent") '()))
+
+ ;; As connman(8) notes, when passing '-n', connman
+ ;; "directs log output to the controlling terminal in
+ ;; addition to syslog." Redirect stdout and stderr
+ ;; to avoid spamming the console (XXX: for some reason
+ ;; redirecting to /dev/null doesn't work.)
+ #:log-file "/var/log/connman.log"))
+ (stop #~(make-kill-destructor)))))))
(define %connman-log-rotation
(list (log-rotation
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm
index 3e778f3cea..8ca7acd737 100644
--- a/gnu/services/sound.scm
+++ b/gnu/services/sound.scm
@@ -38,12 +38,24 @@
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:export (alsa-configuration
+ alsa-configuration?
+ alsa-configuration-alsa-plugins
+ alsa-configuration-pulseaudio?
+ alsa-configuration-extra-options
alsa-service-type
pulseaudio-configuration
+ pulseaudio-configuration?
+ pulseaudio-configuration-client-conf
+ pulseaudio-configuration-daemon-conf
+ pulseaudio-configuration-script-file
+ pulseaudio-configuration-extra-script-files
+ pulseaudio-configuration-system-script-file
pulseaudio-service-type
ladspa-configuration
+ ladspa-configuration?
+ ladspa-configuration-plugins
ladspa-service-type))
;;; Commentary:
@@ -231,7 +243,7 @@ computed-file object~%") file))))
(define-record-type* <ladspa-configuration>
ladspa-configuration make-ladspa-configuration
ladspa-configuration?
- (plugins ladspa-plugins (default '())))
+ (plugins ladspa-configuration-plugins (default '())))
(define (ladspa-environment config)
;; Define this variable in the global environment such that
@@ -239,7 +251,7 @@ computed-file object~%") file))))
`(("LADSPA_PATH" .
(string-join
',(map (lambda (package) (file-append package "/lib/ladspa"))
- (ladspa-plugins config))
+ (ladspa-configuration-plugins config))
":"))))
(define ladspa-service-type
diff --git a/gnu/services/spice.scm b/gnu/services/spice.scm
index e5ec46b9b5..b8d2f8486e 100644
--- a/gnu/services/spice.scm
+++ b/gnu/services/spice.scm
@@ -21,12 +21,13 @@
#:use-module (gnu packages spice)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
+ #:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module (guix records)
#:export (spice-vdagent-configuration
spice-vdagent-configuration?
spice-vdagent-service-type
- spice-vdagent-service))
+ spice-vdagent-service)) ; deprecated
(define-record-type* <spice-vdagent-configuration>
spice-vdagent-configuration make-spice-vdagent-configuration
@@ -74,8 +75,8 @@
from the @code{spice-vdagent} package to enable window resizing and clipboard
sharing for @acronym{VM, virtual machine} guests.")))
-(define* (spice-vdagent-service
- #:optional (config (spice-vdagent-configuration)))
+(define-deprecated (spice-vdagent-service
+ #:optional (config (spice-vdagent-configuration)))
"Start the @command{vdagentd} and @command{vdagent} daemons
from @var{spice-vdagent} to enable guest window resizing and
clipboard sharing."
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 7b038e6ac6..b76544c1a8 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -42,7 +42,7 @@
#:use-module (ice-9 vlist)
#:export (lsh-configuration
lsh-configuration?
- lsh-service
+ lsh-service ; deprecated
lsh-service-type
openssh-configuration
@@ -52,7 +52,7 @@
dropbear-configuration
dropbear-configuration?
dropbear-service-type
- dropbear-service
+ dropbear-service ; deprecated
autossh-configuration
autossh-configuration?
@@ -74,20 +74,34 @@
lsh-configuration?
(lsh lsh-configuration-lsh
(default lsh))
- (daemonic? lsh-configuration-daemonic?)
- (host-key lsh-configuration-host-key)
- (interfaces lsh-configuration-interfaces)
- (port-number lsh-configuration-port-number)
- (allow-empty-passwords? lsh-configuration-allow-empty-passwords?)
- (root-login? lsh-configuration-root-login?)
- (syslog-output? lsh-configuration-syslog-output?)
- (pid-file? lsh-configuration-pid-file?)
- (pid-file lsh-configuration-pid-file)
- (x11-forwarding? lsh-configuration-x11-forwarding?)
- (tcp/ip-forwarding? lsh-configuration-tcp/ip-forwarding?)
- (password-authentication? lsh-configuration-password-authentication?)
- (public-key-authentication? lsh-configuration-public-key-authentication?)
- (initialize? lsh-configuration-initialize?))
+ (daemonic? lsh-configuration-daemonic?
+ (default #t))
+ (host-key lsh-configuration-host-key
+ (default "/etc/lsh/host-key"))
+ (interfaces lsh-configuration-interfaces
+ (default '()))
+ (port-number lsh-configuration-port-number
+ (default 22))
+ (allow-empty-passwords? lsh-configuration-allow-empty-passwords?
+ (default #f))
+ (root-login? lsh-configuration-root-login?
+ (default #f))
+ (syslog-output? lsh-configuration-syslog-output?
+ (default #t))
+ (pid-file? lsh-configuration-pid-file?
+ (default #f))
+ (pid-file lsh-configuration-pid-file
+ (default "/var/run/lshd.pid"))
+ (x11-forwarding? lsh-configuration-x11-forwarding?
+ (default #t))
+ (tcp/ip-forwarding? lsh-configuration-tcp/ip-forwarding?
+ (default #t))
+ (password-authentication? lsh-configuration-password-authentication?
+ (default #t))
+ (public-key-authentication? lsh-configuration-public-key-authentication?
+ (default #t))
+ (initialize? lsh-configuration-initialize?
+ (default #t)))
(define %yarrow-seed
"/var/spool/lsh/yarrow-seed-file")
@@ -203,19 +217,20 @@
(lsh-configuration-allow-empty-passwords? config))))
(define lsh-service-type
- (service-type (name 'lsh)
- (description
- "Run the GNU@tie{}lsh secure shell (SSH) daemon,
+ (service-type
+ (name 'lsh)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ lsh-shepherd-service)
+ (service-extension pam-root-service-type
+ lsh-pam-services)
+ (service-extension activation-service-type
+ lsh-activation)))
+ (description "Run the GNU@tie{}lsh secure shell (SSH) daemon,
@command{lshd}.")
- (extensions
- (list (service-extension shepherd-root-service-type
- lsh-shepherd-service)
- (service-extension pam-root-service-type
- lsh-pam-services)
- (service-extension activation-service-type
- lsh-activation)))))
+ (default-value (lsh-configuration))))
-(define* (lsh-service #:key
+(define-deprecated (lsh-service #:key
(lsh lsh)
(daemonic? #t)
(host-key "/etc/lsh/host-key")
@@ -231,6 +246,7 @@
(password-authentication? #t)
(public-key-authentication? #t)
(initialize? #t))
+ lsh-service-type
"Run the @command{lshd} program from @var{lsh} to listen on port @var{port-number}.
@var{host-key} must designate a file containing the host key, and readable
only by root.
@@ -701,7 +717,9 @@ of user-name/file-like tuples."
dropbear-activation)))
(default-value (dropbear-configuration))))
-(define* (dropbear-service #:optional (config (dropbear-configuration)))
+(define-deprecated (dropbear-service #:optional
+ (config (dropbear-configuration)))
+ dropbear-service-type
"Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH
daemon} with the given @var{config}, a @code{<dropbear-configuration>}
object."
diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm
index 4103f89ecf..a884d71eb2 100644
--- a/gnu/services/vpn.scm
+++ b/gnu/services/vpn.scm
@@ -39,11 +39,12 @@
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (guix i18n)
+ #:use-module (guix deprecation)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
- #:export (openvpn-client-service
- openvpn-server-service
+ #:export (openvpn-client-service ; deprecated
+ openvpn-server-service ; deprecated
openvpn-client-service-type
openvpn-server-service-type
openvpn-client-configuration
@@ -531,7 +532,8 @@ is truncated and rewritten every minute.")
(service-extension activation-service-type
(const %openvpn-activation))))
(description "Run the OpenVPN server, which allows you to
-@emph{host} a @acronym{VPN, virtual private network}.")))
+@emph{host} a @acronym{VPN, virtual private network}.")
+ (default-value (openvpn-server-configuration))))
(define openvpn-client-service-type
(service-type (name 'openvpn-client)
@@ -544,12 +546,17 @@ is truncated and rewritten every minute.")
(const %openvpn-activation))))
(description
"Run the OpenVPN client service, which allows you to connect
-to an existing @acronym{VPN, virtual private network}.")))
+to an existing @acronym{VPN, virtual private network}.")
+ (default-value (openvpn-client-configuration))))
-(define* (openvpn-client-service #:key (config (openvpn-client-configuration)))
+(define-deprecated
+ (openvpn-client-service #:key (config (openvpn-client-configuration)))
+ openvpn-client-service-type
(service openvpn-client-service-type config))
-(define* (openvpn-server-service #:key (config (openvpn-server-configuration)))
+(define-deprecated
+ (openvpn-server-service #:key (config (openvpn-server-configuration)))
+ openvpn-server-service-type
(service openvpn-server-service-type config))
(define (generate-openvpn-server-documentation)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 5f073d05d3..c4745cecf5 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -107,10 +107,13 @@
slim-service-type
- screen-locker
- screen-locker?
+ screen-locker-configuration
+ screen-locker-configuration?
+ screen-locker-configuration-name
+ screen-locker-configuration-program
+ screen-locker-configuration-allow-empty-password?
screen-locker-service-type
- screen-locker-service
+ screen-locker-service ; deprecated
localed-configuration
localed-configuration?
@@ -683,21 +686,30 @@ reboot_cmd " shepherd "/sbin/reboot\n"
;;; Screen lockers & co.
;;;
-(define-record-type <screen-locker>
- (screen-locker name program empty?)
+(define-record-type <screen-locker-configuration>
+ (screen-locker-configuration name program allow-empty-password?)
+ screen-locker-configuration?
+ (name screen-locker-configuration-name) ;string
+ (program screen-locker-configuration-program) ;gexp
+ (allow-empty-password?
+ screen-locker-configuration-allow-empty-password?)) ;Boolean
+
+(define-deprecated/public-alias
+ screen-locker
+ screen-locker-configuration)
+
+(define-deprecated/public-alias
screen-locker?
- (name screen-locker-name) ;string
- (program screen-locker-program) ;gexp
- (empty? screen-locker-allows-empty-passwords?)) ;Boolean
+ screen-locker-configuration?)
(define screen-locker-pam-services
(match-lambda
- (($ <screen-locker> name _ empty?)
+ (($ <screen-locker-configuration> name _ empty?)
(list (unix-pam-service name
#:allow-empty-passwords? empty?)))))
(define screen-locker-setuid-programs
- (compose list file-like->setuid-program screen-locker-program))
+ (compose list file-like->setuid-program screen-locker-configuration-program))
(define screen-locker-service-type
(service-type (name 'screen-locker)
@@ -711,10 +723,11 @@ reboot_cmd " shepherd "/sbin/reboot\n"
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
- (program (package-name package))
- #:key allow-empty-passwords?)
+(define-deprecated (screen-locker-service package
+ #:optional
+ (program (package-name package))
+ #:key allow-empty-passwords?)
+ screen-locker-service-type
"Add @var{package}, a package for a screen locker or screen saver whose
command is @var{program}, to the set of setuid programs and add a PAM entry
for it. For example:
@@ -725,9 +738,9 @@ for it. For example:
makes the good ol' XlockMore usable."
(service screen-locker-service-type
- (screen-locker program
- (file-append package "/bin/" program)
- allow-empty-passwords?)))
+ (screen-locker-configuration program
+ (file-append package "/bin/" program)
+ allow-empty-passwords?)))
;;;