mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-08 05:38:01 +02:00
Give XDG_DATA_HOME priority over XDG_DATA_DIRS for servicedirs
According to the XDG Base Directory Specification, “the base directory defined by $XDG_DATA_HOME is considered more important than any of the base directories defined by $XDG_DATA_DIRS.” This makes it easier to override a system service file as a normal user. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34496 Signed-off-by: Anders Kaseorg <andersk@mit.edu> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
parent
cf33a006dc
commit
3681753421
1 changed files with 26 additions and 23 deletions
|
|
@ -3502,29 +3502,6 @@ _dbus_get_standard_session_servicedirs (DBusList **dirs)
|
|||
xdg_data_home = _dbus_getenv ("XDG_DATA_HOME");
|
||||
xdg_data_dirs = _dbus_getenv ("XDG_DATA_DIRS");
|
||||
|
||||
if (xdg_data_dirs != NULL)
|
||||
{
|
||||
if (!_dbus_string_append (&servicedir_path, xdg_data_dirs))
|
||||
goto oom;
|
||||
|
||||
if (!_dbus_string_append (&servicedir_path, ":"))
|
||||
goto oom;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!_dbus_string_append (&servicedir_path, "/usr/local/share:/usr/share:"))
|
||||
goto oom;
|
||||
}
|
||||
|
||||
/*
|
||||
* add configured datadir to defaults
|
||||
* this may be the same as an xdg dir
|
||||
* however the config parser should take
|
||||
* care of duplicates
|
||||
*/
|
||||
if (!_dbus_string_append (&servicedir_path, DBUS_DATADIR":"))
|
||||
goto oom;
|
||||
|
||||
if (xdg_data_home != NULL)
|
||||
{
|
||||
if (!_dbus_string_append (&servicedir_path, xdg_data_home))
|
||||
|
|
@ -3546,6 +3523,32 @@ _dbus_get_standard_session_servicedirs (DBusList **dirs)
|
|||
goto oom;
|
||||
}
|
||||
|
||||
if (!_dbus_string_append (&servicedir_path, ":"))
|
||||
goto oom;
|
||||
|
||||
if (xdg_data_dirs != NULL)
|
||||
{
|
||||
if (!_dbus_string_append (&servicedir_path, xdg_data_dirs))
|
||||
goto oom;
|
||||
|
||||
if (!_dbus_string_append (&servicedir_path, ":"))
|
||||
goto oom;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!_dbus_string_append (&servicedir_path, "/usr/local/share:/usr/share:"))
|
||||
goto oom;
|
||||
}
|
||||
|
||||
/*
|
||||
* add configured datadir to defaults
|
||||
* this may be the same as an xdg dir
|
||||
* however the config parser should take
|
||||
* care of duplicates
|
||||
*/
|
||||
if (!_dbus_string_append (&servicedir_path, DBUS_DATADIR))
|
||||
goto oom;
|
||||
|
||||
if (!_dbus_split_paths_and_append (&servicedir_path,
|
||||
DBUS_UNIX_STANDARD_SESSION_SERVICEDIR,
|
||||
dirs))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue