mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 13:28:12 -05:00
services: quassel: Use 'least-authority-wrapper'.
* gnu/services/messaging.scm (quassel-shepherd-service): Use 'least-authority-wrapper' instead of 'make-forkexec-constructor/container'.
This commit is contained in:
parent
53dbc6fd9a
commit
dac4efc466
1 changed files with 22 additions and 20 deletions
|
@ -939,29 +939,31 @@ (define-record-type* <quassel-configuration>
|
|||
(define quassel-shepherd-service
|
||||
(match-lambda
|
||||
(($ <quassel-configuration> quassel interface port loglevel)
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(let ((quassel (least-authority-wrapper
|
||||
(file-append quassel "/bin/quasselcore")
|
||||
#:name "quasselcore"
|
||||
#:mappings (list (file-system-mapping
|
||||
(source "/var/lib/quassel")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
(file-system-mapping
|
||||
(source "/var/log/quassel")
|
||||
(target source)
|
||||
(writable? #t)))
|
||||
;; XXX: The daemon needs to live in the main user
|
||||
;; namespace, as root, so it can access /var/lib/quassel
|
||||
;; owned by "quasselcore".
|
||||
#:namespaces (fold delq %namespaces '(net user)))))
|
||||
(list (shepherd-service
|
||||
(provision '(quassel))
|
||||
(requirement '(user-processes networking))
|
||||
(modules '((gnu build shepherd)
|
||||
(gnu system file-systems)))
|
||||
(start #~(make-forkexec-constructor/container
|
||||
(list #$(file-append quassel "/bin/quasselcore")
|
||||
"--configdir=/var/lib/quassel"
|
||||
"--logfile=/var/log/quassel/core.log"
|
||||
(string-append "--loglevel=" #$loglevel)
|
||||
(string-append "--port=" (number->string #$port))
|
||||
(string-append "--listen=" #$interface))
|
||||
#:mappings (list (file-system-mapping
|
||||
(source "/var/lib/quassel")
|
||||
(target source)
|
||||
(writable? #t))
|
||||
(file-system-mapping
|
||||
(source "/var/log/quassel")
|
||||
(target source)
|
||||
(writable? #t)))))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$quassel
|
||||
"--configdir=/var/lib/quassel"
|
||||
"--logfile=/var/log/quassel/core.log"
|
||||
(string-append "--loglevel=" #$loglevel)
|
||||
(string-append "--port=" (number->string #$port))
|
||||
(string-append "--listen=" #$interface))))
|
||||
(stop #~(make-kill-destructor))))))))
|
||||
|
||||
(define %quassel-account
|
||||
|
|
Loading…
Reference in a new issue