We cannot easily launch the dbus session ourselves since all other
applications don't know how to connect to it. We need to rely on the
supported solutions on different platforms. If the session bus is not
available, the workarounds would be huge to manually launch it and tell
all clients the session address.
ref T170
Summary:
On Windows, libdbus will spawn dbus-daemon when swift tries to connect to the session bus.
The daemon looks for session.conf in the share directory.
This patch ensures session.conf is installed in that directory.
Fixes T79.
Reviewers: rwinklmeier
Reviewed By: rwinklmeier
Subscribers: jenkins
Tags: #swift_pilot_client
Maniphest Tasks: T79
Differential Revision: https://dev.swift-project.org/D22
When using QProcess::startDetached on Windows, a console Window is
visible. Since dbus-daemon should run silently in the background,
use our customized CProcess instead which supports starting without
console.
This commit also fixes a race condition. CDBusServer launched the
dbus-daemon and immediatly tried to register. If dbus-daemon was not yet
initialized and ready to accept connections, registering the service
failed. This is fixed by a small timeout.
refs #615
Everytime you connect to DBus, the connection stays open until it
is manually disconnected or cleaned up by the QCoreApplication
destructor. In case of xbus, ~QCoreApplication is not necessarily
be called and the connection not cleaned up. Hence do it manually.
refs #615