Subject: Re: bug#40544: Pulseaudio is not looking for user configuration

From: Diego Nicola Barbato <[email-masked]>
Date: Tue, 28 Apr 2020 11:58:20 +0200

Hi,

Ludovic Courtès <[email-masked]> writes:

> Hi Diego,
>
> Diego Nicola Barbato <[email-masked]> skribis:
>
>> pkill9 <[email-masked]> writes:
>>
>>> Pulseaudio doesn't read my user configuration files according to strace.
>>>
>>> Attached is the output of `strace -o /tmp/log.log pulseaudio` - It only
>>> looks for /etc/pulse/daemon.conf.
>>
>> That's a known [0] (but AFAIK undocumented) side effect of the
>> PulseAudio service, which was added to %desktop-services in January [1].
>> If you want PulseAudio to read your user configuration files you'll have
>> to remove that service from your system services or unset PULSE_CONFIG
>> and PULSE_CLIENT_CONFIG in ~/.profile [2].
>
> It would be good to document that, right below
> ‘pulseaudio-service-type’.  Would you like to give it a try, Diego?

I've attached a patch, which adds a warning to the documentation.

> Or alternately, is there a way we can arrange so that the user’s config
> takes precedence over /etc/pulse?

We can't configure PulseAudio with "--sysconfdir=/etc" because it would
break without the service (e.g. on foreign distributions).[0]

We could patch PulseAudio to make the sysconfdir configurable at runtime
using an environment variable.  The service could set this environment
variable to /etc instead of setting ‘PULSE_CONFIG’ and
‘PULSE_CLIENT_CONFIG’.  That way the user's config would take precedence
over /etc/pulse (PulseAudio's normal behaviour).  Without the service
(and with the environment variable unset) it would fall back to the
sysconfdir configured at build time so it wouldn't break on foreign
distributions.  Although I doubt that the slight improvement in user
experience would justify the increased maintenance burden.

Regards,

Diego

[0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38172#14

>From a33a10102f555454d9025b0693edf8d539f6a7af Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato <[email-masked]>
Date: Sat, 25 Apr 2020 11:32:07 +0200
Subject: [PATCH] doc: Mention that PulseAudio service overrides user
 configuration.

* doc/guix.texi (Sound Services): Add a warning that 'pulseaudio-service-type'
  overrides per-user configuration files in '~/.config/pulse'.
---
 doc/guix.texi | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 19094c4b70..683c40b476 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -63,7 +63,7 @@ Copyright @copyright{} 2018, 2019 Florian Pelz@*
 Copyright @copyright{} 2018 Laura Lazzati@*
 Copyright @copyright{} 2018 Alex Vong@*
 Copyright @copyright{} 2019 Josh Holland@*
-Copyright @copyright{} 2019 Diego Nicola Barbato@*
+Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@*
 Copyright @copyright{} 2019 Ivan Petkov@*
 Copyright @copyright{} 2019 Jakob L. Kreuze@*
 Copyright @copyright{} 2019 Kyle Andrews@*
@@ -16288,6 +16288,13 @@ This is the type for the  @uref{https://www.pulseaudio.org/, PulseAudio}
 sound server.  It exists to allow system overrides of the default settings
 via @code{pulseaudio-configuration}, see below.
 
+@quotation Warning
+This service overrides per-user configuration files.  If you want
+PulseAudio to honor configuraton files in @file{~/.config/pulse} you
+have to unset the environment variables @code{PULSE_CONFIG} and
+@code{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}.
+@end quotation
+
 @quotation Warning
 This service on its own does not ensure, that the @code{pulseaudio} package
 exists on your machine.  It merely adds configuration files for it, as
-- 
2.26.0