From f9599349fb143651e48453fcb8391da3166f3854 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Fri, 5 Feb 2021 14:29:47 +0200 Subject: qtwayland: Mitigate crash when platforminputcontext library is missing Turns out that in the case a plug-in library is missing (which is the actual root cause of this problem) we do not properly check if it can use it, leading to a crash when attempting to make of use QT_LOGGING_RULES. This patch mitigates that and allows to debug Qt w/ the help of QT_LOGGING_RULES. Bug-AGL: SPEC-3359 Signed-off-by: Marius Vlad Change-Id: If8c0f0f030c7ca53aca701a54ceea317cc7fd695 --- ...landintegration-Do-not-attempt-to-use-the.patch | 37 ++++++++++++++++++++++ recipes-qt/qt/qtwayland_agldemo.inc | 1 + 2 files changed, 38 insertions(+) create mode 100644 recipes-qt/qt/qtwayland/0001-client-qwaylandintegration-Do-not-attempt-to-use-the.patch diff --git a/recipes-qt/qt/qtwayland/0001-client-qwaylandintegration-Do-not-attempt-to-use-the.patch b/recipes-qt/qt/qtwayland/0001-client-qwaylandintegration-Do-not-attempt-to-use-the.patch new file mode 100644 index 000000000..2d578e3b0 --- /dev/null +++ b/recipes-qt/qt/qtwayland/0001-client-qwaylandintegration-Do-not-attempt-to-use-the.patch @@ -0,0 +1,37 @@ +From 0c8212273ac0fcd8cd954bd43075901a80ab3476 Mon Sep 17 00:00:00 2001 +From: Marius Vlad +Date: Fri, 29 Jan 2021 12:31:19 +0200 +Subject: [PATCH] client/qwaylandintegration: Do not attempt to use the + inputContext() + +We assume loading the platforminputcompose library no matter what, but +in case that doesn't happen (the library effectively not found), no necessary +checks are made in order to make sure that indeed succeed. + +This patch mitigates that, and with it, it allows to use the QT_LOGGING_RULES, +which is used to trigger the issue. + +Bug-AGL: SPEC-3359 + +Signed-off-by: Marius Vlad +--- + src/client/qwaylandintegration.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp +index f6a80e18..5568485c 100644 +--- a/src/client/qwaylandintegration.cpp ++++ b/src/client/qwaylandintegration.cpp +@@ -503,7 +503,8 @@ void QWaylandIntegration::reconfigureInputContext() + // is why we need to check here which input context actually is being used. + mDisplay->mUsingInputContextFromCompositor = qobject_cast(mInputContext.data()); + +- qCDebug(lcQpaWayland) << "using input method:" << inputContext()->metaObject()->className(); ++ if (mDisplay->mUsingInputContextFromCompositor) ++ qCDebug(lcQpaWayland) << "using input method:" << inputContext()->metaObject()->className(); + } + + QWaylandShellIntegration *QWaylandIntegration::createShellIntegration(const QString &integrationName) +-- +2.28.0 + diff --git a/recipes-qt/qt/qtwayland_agldemo.inc b/recipes-qt/qt/qtwayland_agldemo.inc index c75372583..61d0393a5 100644 --- a/recipes-qt/qt/qtwayland_agldemo.inc +++ b/recipes-qt/qt/qtwayland_agldemo.inc @@ -14,5 +14,6 @@ FILESEXTRAPATHS_append := ":${THISDIR}/qtwayland" SRC_URI_append = "\ file://0010-Added-manifest-file-according-to-smack-3-domain-mode.patch \ + file://0001-client-qwaylandintegration-Do-not-attempt-to-use-the.patch \ " -- cgit 1.2.3-korg