summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-04-17 22:18:50 +0200
committerLudovic Courtès <ludo@gnu.org>2022-05-01 21:30:36 +0200
commitdac4efc466fd459912d6dd85a0be7c96cd3e35e1 (patch)
tree7f5267706f605d04dcc3a0870a6fcac5c02cddde
parent53dbc6fd9a2f476f38e17496457a6b3b06e71687 (diff)
services: quassel: Use 'least-authority-wrapper'.
* gnu/services/messaging.scm (quassel-shepherd-service): Use 'least-authority-wrapper' instead of 'make-forkexec-constructor/container'.
-rw-r--r--gnu/services/messaging.scm42
1 files changed, 22 insertions, 20 deletions
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 7fdd8cf285d..05bf6e784b5 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -939,29 +939,31 @@ a gateway between IRC and chat networks.")))
939(define quassel-shepherd-service 939(define quassel-shepherd-service
940 (match-lambda 940 (match-lambda
941 (($ <quassel-configuration> quassel interface port loglevel) 941 (($ <quassel-configuration> quassel interface port loglevel)
942 (with-imported-modules (source-module-closure 942 (let ((quassel (least-authority-wrapper
943 '((gnu build shepherd) 943 (file-append quassel "/bin/quasselcore")
944 (gnu system file-systems))) 944 #:name "quasselcore"
945 #:mappings (list (file-system-mapping
946 (source "/var/lib/quassel")
947 (target source)
948 (writable? #t))
949 (file-system-mapping
950 (source "/var/log/quassel")
951 (target source)
952 (writable? #t)))
953 ;; XXX: The daemon needs to live in the main user
954 ;; namespace, as root, so it can access /var/lib/quassel
955 ;; owned by "quasselcore".
956 #:namespaces (fold delq %namespaces '(net user)))))
945 (list (shepherd-service 957 (list (shepherd-service
946 (provision '(quassel)) 958 (provision '(quassel))
947 (requirement '(user-processes networking)) 959 (requirement '(user-processes networking))
948 (modules '((gnu build shepherd) 960 (start #~(make-forkexec-constructor
949 (gnu system file-systems))) 961 (list #$quassel
950 (start #~(make-forkexec-constructor/container 962 "--configdir=/var/lib/quassel"
951 (list #$(file-append quassel "/bin/quasselcore") 963 "--logfile=/var/log/quassel/core.log"
952 "--configdir=/var/lib/quassel" 964 (string-append "--loglevel=" #$loglevel)
953 "--logfile=/var/log/quassel/core.log" 965 (string-append "--port=" (number->string #$port))
954 (string-append "--loglevel=" #$loglevel) 966 (string-append "--listen=" #$interface))))
955 (string-append "--port=" (number->string #$port))
956 (string-append "--listen=" #$interface))
957 #:mappings (list (file-system-mapping
958 (source "/var/lib/quassel")
959 (target source)
960 (writable? #t))
961 (file-system-mapping
962 (source "/var/log/quassel")
963 (target source)
964 (writable? #t)))))
965 (stop #~(make-kill-destructor)))))))) 967 (stop #~(make-kill-destructor))))))))
966 968
967(define %quassel-account 969(define %quassel-account