Subject: bug#42118: Editing pulseaudio config file fails with "No such file or directory"

From: Leo Prikler <[email-masked]>
Date: Wed, 01 Jul 2020 10:15:01 +0200

Am Mittwoch, den 01.07.2020, 01:58 -0500 schrieb Nathan Dehnel:
> There is a file 86cvvgnb03cc11li0m0s3nrl73zf68fm-default.pa with my
> changes in it in /gnu/store.
> 
> load-module module-jack-sink
> load-module module-jack-source
> 
> Maybe pulse wasn't compiled with support for this feature enabled?
> 
> This setting in /etc/pulse/daemon.conf points somewhere else:
> ; default-script-file =
> /gnu/store/y0lbm4qcxm3i8i7q1msp0ng1pysg8pb9-pulseaudio-
> 13.0/etc/pulse/default.pa
> I assume guix overrides this somehow?
I don't think so.  The relevant code portions are in
gnu/services/sound.scm and read among others:

  (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)))))))

Due to a bug with webkit sandboxing, we no longer put daemon.conf into
/etc/pulse (my bad), but rather set PULSE_CONFIG to directly point to
it.  As you can see, `default-script-file' should be set to the file
you're supplying.  I am currently unsure, at which point this variable
gets updated (I still think you need to reboot), but I'm pretty
convinced, this would work with a custom script file.

Regards, 
Leo.