mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-11 13:54:04 +02:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d780c4c1cc | |||
| 701a498b42 | |||
| 2be1e10e36 |
+21
-39
@@ -39,7 +39,10 @@
|
|||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-71)
|
#:use-module (srfi srfi-71)
|
||||||
#:export (mpd-output
|
#:export (%mpd-user
|
||||||
|
%mpd-group
|
||||||
|
|
||||||
|
mpd-output
|
||||||
mpd-output?
|
mpd-output?
|
||||||
mpd-output-name
|
mpd-output-name
|
||||||
mpd-output-type
|
mpd-output-type
|
||||||
@@ -67,7 +70,6 @@
|
|||||||
mpd-configuration?
|
mpd-configuration?
|
||||||
mpd-configuration-package
|
mpd-configuration-package
|
||||||
mpd-configuration-user
|
mpd-configuration-user
|
||||||
mpd-configuration-group
|
|
||||||
mpd-configuration-shepherd-requirement
|
mpd-configuration-shepherd-requirement
|
||||||
mpd-configuration-log-file
|
mpd-configuration-log-file
|
||||||
mpd-configuration-log-level
|
mpd-configuration-log-level
|
||||||
@@ -173,30 +175,26 @@
|
|||||||
(define (mpd-serialize-user-account field-name value)
|
(define (mpd-serialize-user-account field-name value)
|
||||||
(mpd-serialize-string field-name (user-account-name value)))
|
(mpd-serialize-string field-name (user-account-name value)))
|
||||||
|
|
||||||
(define (mpd-serialize-user-group field-name value)
|
|
||||||
(mpd-serialize-string field-name (user-group-name value)))
|
|
||||||
|
|
||||||
(define-maybe string (prefix mpd-))
|
(define-maybe string (prefix mpd-))
|
||||||
(define-maybe list-of-strings (prefix mpd-))
|
(define-maybe list-of-strings (prefix mpd-))
|
||||||
(define-maybe boolean (prefix mpd-))
|
(define-maybe boolean (prefix mpd-))
|
||||||
|
|
||||||
(define %mpd-user
|
|
||||||
(user-account
|
|
||||||
(name "mpd")
|
|
||||||
;; XXX: This is a place-holder to be lazily substituted in (…-accounts)
|
|
||||||
;; with the value from the 'group' field of <mpd-configuration>.
|
|
||||||
(group %lazy-group)
|
|
||||||
(system? #t)
|
|
||||||
(comment "Music Player Daemon (MPD) user")
|
|
||||||
;; MPD can use $HOME (or $XDG_CONFIG_HOME) to place its data.
|
|
||||||
(home-directory "/var/lib/mpd")
|
|
||||||
(shell (file-append shadow "/sbin/nologin"))))
|
|
||||||
|
|
||||||
(define %mpd-group
|
(define %mpd-group
|
||||||
(user-group
|
(user-group
|
||||||
(name "mpd")
|
(name "mpd")
|
||||||
(system? #t)))
|
(system? #t)))
|
||||||
|
|
||||||
|
(define %mpd-user
|
||||||
|
(user-account
|
||||||
|
(name "mpd")
|
||||||
|
(group (user-group-name %mpd-group))
|
||||||
|
(supplementary-groups '("audio"))
|
||||||
|
(system? #t)
|
||||||
|
(comment "Music Player Daemon (MPD) user")
|
||||||
|
;; MPD can use $HOME (or $XDG_CONFIG_HOME) to place its data.
|
||||||
|
(home-directory "/var/lib/mpd")
|
||||||
|
(shell (file-append shadow "/sbin/nologin"))))
|
||||||
|
|
||||||
;;; TODO: Procedures for deprecated fields, to be removed.
|
;;; TODO: Procedures for deprecated fields, to be removed.
|
||||||
|
|
||||||
(define mpd-deprecated-fields '((music-dir . music-directory)
|
(define mpd-deprecated-fields '((music-dir . music-directory)
|
||||||
@@ -239,17 +237,6 @@ user-account instead~%"))
|
|||||||
(else
|
(else
|
||||||
(configuration-field-error #f 'user value))))
|
(configuration-field-error #f 'user value))))
|
||||||
|
|
||||||
(define (mpd-group-sanitizer value)
|
|
||||||
(cond ((user-group? value) value)
|
|
||||||
((string? value)
|
|
||||||
(warning (G_ "string value for 'group' is deprecated, use \
|
|
||||||
user-group instead~%"))
|
|
||||||
(user-group
|
|
||||||
(inherit %mpd-group)
|
|
||||||
(name value)))
|
|
||||||
(else
|
|
||||||
(configuration-field-error #f 'group value))))
|
|
||||||
|
|
||||||
(define (mpd-log-file-sanitizer value)
|
(define (mpd-log-file-sanitizer value)
|
||||||
;; XXX: While leaving the 'sys_log' option out of the mpd.conf file is
|
;; XXX: While leaving the 'sys_log' option out of the mpd.conf file is
|
||||||
;; supposed to cause logging to happen via systemd (elogind provides a
|
;; supposed to cause logging to happen via systemd (elogind provides a
|
||||||
@@ -417,11 +404,6 @@ to be appended to the audio output configuration.")
|
|||||||
"The user to run mpd as."
|
"The user to run mpd as."
|
||||||
(sanitizer mpd-user-sanitizer))
|
(sanitizer mpd-user-sanitizer))
|
||||||
|
|
||||||
(group
|
|
||||||
(user-group %mpd-group)
|
|
||||||
"The group to run mpd as."
|
|
||||||
(sanitizer mpd-group-sanitizer))
|
|
||||||
|
|
||||||
(shepherd-requirement
|
(shepherd-requirement
|
||||||
(list-of-symbols '())
|
(list-of-symbols '())
|
||||||
"This is a list of symbols naming Shepherd services that this service
|
"This is a list of symbols naming Shepherd services that this service
|
||||||
@@ -650,12 +632,12 @@ appended to the configuration.")
|
|||||||
(format #t "Service MPD is not running.")))))))))))
|
(format #t "Service MPD is not running.")))))))))))
|
||||||
|
|
||||||
(define (mpd-accounts config)
|
(define (mpd-accounts config)
|
||||||
(match-record config <mpd-configuration> (user group)
|
(match-record config <mpd-configuration> (user)
|
||||||
;; TODO: Deprecation code, to be removed.
|
`(,user
|
||||||
(let ((user (if (eq? (user-account-group user) %lazy-group)
|
;; Create %mpd-group if that's what we're using.
|
||||||
(set-user-group user group)
|
,(when (string=? (user-group-name %mpd-group)
|
||||||
user)))
|
(user-account-group user))
|
||||||
(list user group))))
|
%mpd-group))))
|
||||||
|
|
||||||
(define mpd-service-type
|
(define mpd-service-type
|
||||||
(service-type
|
(service-type
|
||||||
|
|||||||
Reference in New Issue
Block a user