services: Do not use symbolic links in PulseAudio variables.

This addresses <https://bugs.gnu.org/40837> by making these configuration
files more easily accessible within the WebKitGTK sandbox.

* gnu/services/sound.scm (pulseaudio-environment): Move below
PULSEAUDIO-CONF-ENTRY.  Instantiate PULSE_CONFIG and PULSE_CLIENTCONFIG
entries directly instead of referring to /etc/pulse.
(pulseaudio-etc): Do not create /etc/pulse/client.conf and /etc/pulse/daemon.conf.
This commit is contained in:
Marius Bakke 2020-05-06 17:48:42 +02:00
parent e3bf2a66a2
commit 3ed94ed8c2
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -127,11 +128,6 @@ (define-record-type* <pulseaudio-configuration>
(default
(file-append pulseaudio "/etc/pulse/system.pa"))))
(define (pulseaudio-environment config)
`(;; Define these variables, so that pulseaudio honors /etc.
("PULSE_CONFIG" . "/etc/pulse/daemon.conf")
("PULSE_CLIENTCONFIG" . "/etc/pulse/client.conf")))
(define (pulseaudio-conf-entry arg)
(match arg
((key . value)
@ -139,21 +135,22 @@ (define (pulseaudio-conf-entry arg)
((? string? _)
(string-append arg "\n"))))
(define pulseaudio-environment
(match-lambda
(($ <pulseaudio-configuration> client-conf daemon-conf default-script-file)
`(("PULSE_CONFIG" . ,(apply mixed-text-file "daemon.conf"
"default-script-file = " default-script-file "\n"
(map pulseaudio-conf-entry daemon-conf)))
("PULSE_CLIENTCONFIG" . ,(apply mixed-text-file "client.conf"
(map pulseaudio-conf-entry client-conf)))))))
(define pulseaudio-etc
(match-lambda
(($ <pulseaudio-configuration> client-conf daemon-conf
default-script-file system-script-file)
(($ <pulseaudio-configuration> _ _ default-script-file system-script-file)
`(("pulse"
,(file-union
"pulse"
`(("client.conf"
,(apply mixed-text-file "client.conf"
(map pulseaudio-conf-entry client-conf)))
("daemon.conf"
,(apply mixed-text-file "daemon.conf"
"default-script-file = " default-script-file "\n"
(map pulseaudio-conf-entry daemon-conf)))
("default.pa" ,default-script-file)
`(("default.pa" ,default-script-file)
("system.pa" ,system-script-file))))))))
(define pulseaudio-service-type