Commit 1c7e3064 authored by David Edmundson's avatar David Edmundson Committed by Henri Chain
Browse files

Fix query of StartPlasma::hasSystemdService

ListUnitByNames did not quite work as the author (me) expected. Whilst a
search for "adsfasf" yeilded an empty list a well-formed name like
"asdfasdf.service" would return a result to say that service was not
loaded.

This means our runtime detection of xdg-autostart-generator failed.

By using ListUnitFilesByPatterns we can filter on the status in the
query, meaning this code works again. We also can query the case of it
being available but explicitly disabled.

BUG: 433333
parent 9493c9a2
......@@ -452,8 +452,8 @@ bool hasSystemdService(const QString &serviceName)
auto msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.systemd1"),
QStringLiteral("/org/freedesktop/systemd1"),
QStringLiteral("org.freedesktop.systemd1.Manager"),
QStringLiteral("ListUnitsByNames"));
msg << QStringList({serviceName});
QStringLiteral("ListUnitFilesByPatterns"));
msg << QStringList({QStringLiteral("enabled"), QStringLiteral("static")}) << QStringList({serviceName});
auto reply = QDBusConnection::sessionBus().call(msg);
if (reply.type() == QDBusMessage::ErrorMessage) {
return false;
......@@ -471,7 +471,7 @@ bool useSystemdBoot()
return false;
}
if (!hasSystemdService(QStringLiteral("plasma-workspace@ANY.target"))) {
if (!hasSystemdService(QStringLiteral("plasma-workspace@.target"))) {
qWarning() << "Systemd boot requested, but plasma services were not found";
return false;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment