client-conf, daemon-conf: enable .d directories

I want to enable client.conf.d, because in OpenEmbedded-core we have
a graphical environment called Sato that runs as root. Sato needs to
set allow-autospawn-for-root=true in client.conf, but the default
configuration in OpenEmbedded-core should not set that option. With
this patch, I can create a Sato-specific package that simply installs
50-sato.conf in /etc/pulse/client.conf.d without conflicting with the
main client.conf coming from a different package.

daemon.conf.d is enabled just because it would be strange to not
support it while client.conf.d is supported.
This commit is contained in:
Tanu Kaskinen 2015-12-07 23:22:42 +02:00 committed by David Henningsson
parent 1d7ce90139
commit 7b9fcc01f6
4 changed files with 35 additions and 13 deletions

View file

@ -23,15 +23,26 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
<synopsis> <synopsis>
<p><file>~/.config/pulse/client.conf</file></p> <p><file>~/.config/pulse/client.conf</file></p>
<p><file>~/.config/pulse/client.conf.d/*.conf</file></p>
<p><file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file></p> <p><file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file></p>
<p><file>@PA_DEFAULT_CONFIG_DIR@/client.conf.d/*.conf</file></p>
</synopsis> </synopsis>
<description> <description>
<p>The PulseAudio client library reads configuration directives from <p>The PulseAudio client library reads configuration directives from
a file <file>~/.config/pulse/client.conf</file> on startup and when that a configuration file on startup. If the per-user file
file doesn't exist from <file>~/.config/pulse/client.conf</file> exists, it is used, otherwise the
<file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file>.</p> system configuration file <file>@PA_DEFAULT_CONFIG_DIR@/client.conf</file>
is used. In addition to those main files, configuration directives can also
be put in files under directories
<file>~/.config/pulse/client.conf.d/</file> and
<file>@PA_DEFAULT_CONFIG_DIR@/client.conf.d/</file>. Those files have to
have the .conf file name extension, but otherwise the file names can be
chosen freely. The files under client.conf.d are processed in alphabetical
order. In case the same option is set in multiple files, the last file to
set an option overrides earlier files. The main client.conf file is
processed first, so options set in files under client.conf.d override the
main file.</p>
<p>The configuration file is a simple collection of variable <p>The configuration file is a simple collection of variable
declarations. If the configuration file parser encounters either ; declarations. If the configuration file parser encounters either ;

View file

@ -23,18 +23,29 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
<synopsis> <synopsis>
<p><file>~/.config/pulse/daemon.conf</file></p> <p><file>~/.config/pulse/daemon.conf</file></p>
<p><file>~/.config/pulse/daemon.conf.d/*.conf</file></p>
<p><file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file></p> <p><file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file></p>
<p><file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf.d/*.conf</file></p>
</synopsis> </synopsis>
<description> <description>
<p>The PulseAudio sound server reads configuration directives from <p>The PulseAudio sound server reads configuration directives from
a file <file>~/.config/pulse/daemon.conf</file> on startup and when that a configuration file on startup. If the per-user file
file doesn't exist from <file>~/.config/pulse/daemon.conf</file> exists, it is used, otherwise the
<file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file>. Please note that the system configuration file <file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf</file>
server also reads a configuration script on startup is used. In addition to those main files, configuration directives can also
<file>default.pa</file> which also contains runtime configuration be put in files under directories
directives.</p> <file>~/.config/pulse/daemon.conf.d/</file> and
<file>@PA_DEFAULT_CONFIG_DIR@/daemon.conf.d/</file>. Those files have to
have the .conf file name extension, but otherwise the file names can be
chosen freely. The files under daemon.conf.d are processed in alphabetical
order. In case the same option is set in multiple files, the last file to
set an option overrides earlier files. The main daemon.conf file is
processed first, so options set in files under daemon.conf.d override the
main file.</p>
<p>Please note that the server also reads a configuration script on
startup. See <manref name="default.pa" section="5"/>.</p>
<p>The configuration file is a simple collection of variable <p>The configuration file is a simple collection of variable
declarations. If the configuration file parser encounters either ; declarations. If the configuration file parser encounters either ;

View file

@ -617,7 +617,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) {
ci.default_channel_map_set = ci.default_sample_spec_set = false; ci.default_channel_map_set = ci.default_sample_spec_set = false;
ci.conf = c; ci.conf = c;
r = f ? pa_config_parse(c->config_file, f, table, NULL, false, NULL) : 0; r = f ? pa_config_parse(c->config_file, f, table, NULL, true, NULL) : 0;
if (r >= 0) { if (r >= 0) {

View file

@ -149,7 +149,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e
f = pa_open_config_file(DEFAULT_CLIENT_CONFIG_FILE, DEFAULT_CLIENT_CONFIG_FILE_USER, ENV_CLIENT_CONFIG_FILE, &fn); f = pa_open_config_file(DEFAULT_CLIENT_CONFIG_FILE, DEFAULT_CLIENT_CONFIG_FILE_USER, ENV_CLIENT_CONFIG_FILE, &fn);
if (f) { if (f) {
pa_config_parse(fn, f, table, NULL, false, NULL); pa_config_parse(fn, f, table, NULL, true, NULL);
pa_xfree(fn); pa_xfree(fn);
fclose(f); fclose(f);
} }