[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
10/12: services: jami: Use ‘least-authority-wrapper’.
From: |
guix-commits |
Subject: |
10/12: services: jami: Use ‘least-authority-wrapper’. |
Date: |
Thu, 21 Dec 2023 18:36:54 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 62a08abea75b234b2ada905acb9df27406c6f1d2
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Nov 14 11:06:26 2023 +0100
services: jami: Use ‘least-authority-wrapper’.
* gnu/services/telephony.scm (jami-configuration->command-line-arguments)
[wrapper]: New procedure.
Use it.
(jami-shepherd-services): In ‘start’ method of ‘jami’ service, use
‘fork+exec-command’ instead of ‘make-forkexec-constructor/container’.
Remove use of (gnu build shepherd).
Change-Id: Ic71c0c88477d92bf137d9d0a5832bae8721cc210
---
gnu/services/telephony.scm | 66 ++++++++++++++++++++++++++--------------------
1 file changed, 37 insertions(+), 29 deletions(-)
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index 832470527d..16d109b8b1 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -261,9 +261,37 @@ consistent state."))
(define (jami-configuration->command-line-arguments config)
"Derive the command line arguments to used to launch the Jami daemon from
CONFIG, a <jami-configuration> object."
+ (define (wrapper libjami)
+ (least-authority-wrapper
+ ;; XXX: 'gexp-input' is needed as the outer layer so that
+ ;; 'references-file' picks the right output of LIBJAMI.
+ (gexp-input (file-append (gexp-input libjami "bin") "/libexec/jamid")
+ "bin")
+ #:mappings
+ (list (file-system-mapping
+ (source "/dev/log") ;for syslog
+ (target source))
+ (file-system-mapping
+ (source "/var/lib/jami")
+ (target source)
+ (writable? #t))
+ (file-system-mapping
+ (source "/var/run/jami")
+ (target source)
+ (writable? #t))
+ ;; Expose TLS certificates for GnuTLS.
+ (file-system-mapping
+ (source (file-append nss-certs "/etc/ssl/certs"))
+ (target "/etc/ssl/certs")))
+ #:preserved-environment-variables
+ '("DBUS_SESSION_BUS_ADDRESS" "SSL_CERT_DIR")
+ #:user "jami"
+ #:group "jami"
+ #:namespaces (fold delq %namespaces '(net user))))
+
(match-record config <jami-configuration>
(libjami dbus enable-logging? debug? auto-answer?)
- `(,#~(string-append #$libjami:bin "/libexec/jamid")
+ `(,(wrapper libjami)
"--persistent" ;stay alive after client quits
,@(if enable-logging?
'() ;logs go to syslog by default
@@ -334,7 +362,6 @@ CONFIG, a <jami-configuration> object."
(with-imported-modules (source-module-closure
'((gnu build dbus-service)
(gnu build jami-service)
- (gnu build shepherd)
(gnu system file-systems)))
(define list-accounts-action
@@ -562,7 +589,6 @@ argument, either a registered username or the fingerprint
of the account.")
(srfi srfi-26)
(gnu build dbus-service)
(gnu build jami-service)
- (gnu build shepherd)
(gnu system file-systems)
,@%default-modules))
(start
@@ -608,32 +634,14 @@ argument, either a registered username or the fingerprint
of the account.")
;; Start the daemon.
(define daemon-pid
- ((make-forkexec-constructor/container
- (list #$@(jami-configuration->command-line-arguments
- config))
- #:mappings
- (list (file-system-mapping
- (source "/dev/log") ;for syslog
- (target source))
- (file-system-mapping
- (source "/var/lib/jami")
- (target source)
- (writable? #t))
- (file-system-mapping
- (source "/var/run/jami")
- (target source)
- (writable? #t))
- ;; Expose TLS certificates for GnuTLS.
- (file-system-mapping
- (source #$(file-append nss-certs
"/etc/ssl/certs"))
- (target "/etc/ssl/certs")))
- #:user "jami"
- #:group "jami"
- #:environment-variables
- (list (string-append "DBUS_SESSION_BUS_ADDRESS="
- "unix:path=/var/run/jami/bus")
- ;; Expose TLS certificates for OpenSSL.
- "SSL_CERT_DIR=/etc/ssl/certs"))))
+ (fork+exec-command
+ (list #$@(jami-configuration->command-line-arguments
+ config))
+ #:environment-variables
+ (list (string-append "DBUS_SESSION_BUS_ADDRESS="
+ "unix:path=/var/run/jami/bus")
+ ;; Expose TLS certificates for OpenSSL.
+ "SSL_CERT_DIR=/etc/ssl/certs")))
(setenv "DBUS_SESSION_BUS_ADDRESS"
"unix:path=/var/run/jami/bus")
- branch master updated (4771960e5d -> ca81317389), guix-commits, 2023/12/21
- 02/12: gexp: #:references-graphs accepts and honors <gexp-input> records., guix-commits, 2023/12/21
- 11/12: services: Remove unnecessary references to (gnu build shepherd)., guix-commits, 2023/12/21
- 07/12: tests: jami: Check status of Jami D-Bus session., guix-commits, 2023/12/21
- 06/12: least-authority: Add support for changing UIDs/GIDs before exec., guix-commits, 2023/12/21
- 05/12: services: bitlbee: Remove use of ‘make-forkexec-constructor/container’., guix-commits, 2023/12/21
- 01/12: gexp: Add compiler for <gexp-input>., guix-commits, 2023/12/21
- 10/12: services: jami: Use ‘least-authority-wrapper’.,
guix-commits <=
- 12/12: shepherd: Remove ‘make-forkexec-constructor/container’., guix-commits, 2023/12/21
- 08/12: tests: jami: Double timeouts., guix-commits, 2023/12/21
- 03/12: services: pagekite: Use ‘least-authority-wrapper’., guix-commits, 2023/12/21
- 04/12: services: pagekite: Add ‘configuration’ action., guix-commits, 2023/12/21
- 09/12: services: jami-dbus-session: Use ‘least-authority-wrapper’., guix-commits, 2023/12/21