conf: move config file to datadir

Install the config file in $PREFIX/share/pipewire so that a factory
reset can be done by wiping /etc and /home.
Add this new directory to the search path.
System wide config can still be done in /etc, user config in
$HOME/.config/pipewire/ by copying files from $PREFIX/share/pipewire

Fixes #1191
This commit is contained in:
Wim Taymans 2021-05-17 16:22:31 +02:00
parent d9240bb766
commit 1609126bcd
6 changed files with 25 additions and 15 deletions

View file

@ -10,5 +10,5 @@ foreach c : conf_files
configure_file(input : c.get(0),
output : c.get(1),
configuration : conf_config,
install_dir : conf_install_dir / 'filter-chain')
install_dir : pipewire_confdatadir / 'filter-chain')
endforeach

View file

@ -11,11 +11,11 @@ foreach c : conf_files
configure_file(input : c.get(0),
output : c.get(1),
configuration : conf_config,
install_dir : conf_install_dir / 'media-session.d')
install_dir : pipewire_confdatadir / 'media-session.d')
endforeach
install_data(
sources : [
'with-jack',
'with-pulseaudio' ],
install_dir : conf_install_dir / 'media-session.d')
install_dir : pipewire_confdatadir / 'media-session.d')

View file

@ -14,7 +14,6 @@ conf_config.set('media_session_path', pipewire_bindir / 'pipewire-media-session'
conf_config.set('pipewire_path', pipewire_bindir / 'pipewire')
conf_config.set('pipewire_pulse_path', pipewire_bindir / 'pipewire-pulse')
conf_config.set('comment', '#')
conf_install_dir = get_option('sysconfdir') / 'pipewire'
conf_config_uninstalled = conf_config
conf_config_uninstalled.set('media_session_path',
@ -38,7 +37,7 @@ foreach c : conf_files
configure_file(input : c.get(0),
output : c.get(1),
configuration : conf_config,
install_dir : conf_install_dir)
install_dir : pipewire_confdatadir)
endforeach
configure_file(input : 'pipewire.conf.in',

View file

@ -104,6 +104,13 @@ static int get_read_path(char *path, size_t size, const char *prefix, const char
access(path, R_OK) == 0)
return 1;
}
dir = PIPEWIRE_CONFDATADIR;
if (dir != NULL) {
const char *paths[] = { dir, prefix, name, NULL };
if (make_path(path, size, paths) == 0 &&
access(path, R_OK) == 0)
return 1;
}
return 0;
}