summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Weimer <bernd.weimer@qt.io>2023-01-30 16:33:54 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-01-30 19:13:58 +0000
commite89d5337ab2d7c5efc5b1eda67f44f9af7b1bff3 (patch)
tree665c527f9edda275139e2036ae0250dc3c3fb2ab
parentce611f9f646851120835b37187b0ef09c5e861e6 (diff)
downloadqtapplicationmanager-e89d5337ab2d7c5efc5b1eda67f44f9af7b1bff3.tar.gz
Handle missing wayland display gracefully
When the wayland socket didn't exist, the appman-launcher-qml would terminate with an abort. This could happen for instance inside a container when the socket file was not mapped. This has been mitigated to only show a critical error message in the am.runtime.qml logging category and exit gracefully (with an error return code). Change-Id: Id29d0e79e260726d1ffd9b940eac806b483b8a19 Reviewed-by: Robert Griebl <robert.griebl@qt.io> (cherry picked from commit 61e91284ade4ba7548e84e6550934aff5bcf1ca2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/tools/launcher-qml/launcher-qml.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tools/launcher-qml/launcher-qml.cpp b/src/tools/launcher-qml/launcher-qml.cpp
index 351ec7f8..8ca08bb7 100644
--- a/src/tools/launcher-qml/launcher-qml.cpp
+++ b/src/tools/launcher-qml/launcher-qml.cpp
@@ -98,6 +98,11 @@ int main(int argc, char *argv[])
Logging::initialize();
try {
+ const QString socket = QDir(qEnvironmentVariable("XDG_RUNTIME_DIR"))
+ .filePath(qEnvironmentVariable("WAYLAND_DISPLAY"));
+ if (!QFileInfo::exists(socket))
+ throw Exception("Cannot start application: no wayland display - expected socket at: %1").arg(socket);
+
LauncherMain::initialize();
Application app(argc, argv);
LauncherMain launcher;