diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-03-11 03:03:03 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-07-28 21:22:07 +0200 |
commit | d837d937c589e0fb11e4da8d6173ec14f121d1fa (patch) | |
tree | 2ff01cc4ab8c229147b734a1ec787245e6be2e55 | |
parent | 736ddc7f014326590b0126ecc631ae83bc885ff0 (diff) | |
download | dbus-d837d937c589e0fb11e4da8d6173ec14f121d1fa.tar.gz |
activation: add /lib/dbus-1/system-services to the search path for services
In order to allow D-Bus usage during early boot (where /usr is not
accessible) also search for bus activation files in
/lib/dbus-1/system-services/. This is only a first step in the right
direction, before we really can boot without /usr we'd need to move all
current activation files (or possibly replace
/usr/dbus-1/system-services to a symlink to
/lib/dbus-1/system-services).
-rw-r--r-- | bus/config-parser.c | 4 | ||||
-rw-r--r-- | dbus/dbus-sysdeps-unix.c | 16 |
2 files changed, 15 insertions, 5 deletions
diff --git a/bus/config-parser.c b/bus/config-parser.c index c9dbdf93..f9432555 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -3395,6 +3395,10 @@ static const char *test_system_service_dir_matches[] = "/testusr/testshare/dbus-1/system-services", #endif DBUS_DATADIR"/dbus-1/system-services", +#ifdef DBUS_UNIX + "/lib/dbus-1/system-services", +#endif + #ifdef DBUS_WIN NULL, #endif diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index d6063713..6b230c4f 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -3633,12 +3633,18 @@ _dbus_get_standard_system_servicedirs (DBusList **dirs) } /* - * add configured datadir to defaults - * this may be the same as an xdg dir - * however the config parser should take - * care of duplicates + * Add configured datadir to defaults. This may be the same as one + * of the XDG directories. However, the config parser should take + * care of the duplicates. + * + * Also, append /lib as counterpart of /usr/share on the root + * directory (the root directory does not know /share), in order to + * facilitate early boot system bus activation where /usr might not + * be available. */ - if (!_dbus_string_append (&servicedir_path, DBUS_DATADIR":")) + if (!_dbus_string_append (&servicedir_path, + DBUS_DATADIR":" + "/lib:")) goto oom; if (!_dbus_split_paths_and_append (&servicedir_path, |