diff --git a/qt5-qtbase-5.8-QTBUG-55583.patch b/qt5-qtbase-5.8-QTBUG-55583.patch new file mode 100644 index 0000000..67efee1 --- /dev/null +++ b/qt5-qtbase-5.8-QTBUG-55583.patch @@ -0,0 +1,38 @@ +From 84ea00d47049d882f2fabf1446ec6c6eb5fe3038 Mon Sep 17 00:00:00 2001 +From: J-P Nurmi +Date: Tue, 6 Dec 2016 16:30:31 +0100 +Subject: [PATCH] QGtk3Dialog: don't crash on Wayland + +Check if it's an X11 window before calling XSetTransientForHint(). +No transient parent will be set for GTK+ dialogs on Wayland. That +has to be implemented separately. + +Task-number: QTBUG-55583 +Change-Id: Iabc2a72681c8157bb2f2fe500892853aa397106b +Reviewed-by: Dmitry Shachnev +Reviewed-by: Shawn Rutledge +--- + src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp +index ba5089a..699b058 100644 +--- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp ++++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp +@@ -135,10 +135,12 @@ bool QGtk3Dialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWind + + GdkWindow *gdkWindow = gtk_widget_get_window(gtkWidget); + if (parent) { +- GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow); +- XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay), +- gdk_x11_window_get_xid(gdkWindow), +- parent->winId()); ++ if (GDK_IS_X11_WINDOW(gdkWindow)) { ++ GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow); ++ XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay), ++ gdk_x11_window_get_xid(gdkWindow), ++ parent->winId()); ++ } + } + + if (modality != Qt::NonModal) { diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index a129a5d..e7c13a8 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -66,7 +66,7 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.7.1 -Release: 9%{?dist} +Release: 10%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -124,6 +124,10 @@ Patch63: qt5-qtbase-5.7.1-openssl11.patch Patch64: qt5-qtbase-5.7.1-firebird.patch ## upstream patches +# 5.8 branch +# https://bugzilla.redhat.com/show_bug.cgi?id=1403500 +# https://bugreports.qt.io/browse/QTBUG-55583 +Patch100: qt5-qtbase-5.8-QTBUG-55583.patch # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. # Those themes are there for platform integration. If the required libraries are @@ -354,6 +358,7 @@ Qt5 libraries used for drawing widgets and OpenGL items. %setup -q -n %{qt_module}-opensource-src-%{version} %patch4 -p1 -b .QTBUG-35459 +%patch100 -p1 -b .QTBUG-55583 %patch50 -p1 -b .QT_VERSION_CHECK %patch52 -p1 -b .moc_macros @@ -965,6 +970,9 @@ fi %changelog +* Mon Dec 19 2016 Rex Dieter - 5.7.1-10 +- backport 5.8 patch for wayland crasher (#1403500,QTBUG-55583) + * Fri Dec 09 2016 Rex Dieter - 5.7.1-9 - restore moc_system_defines.patch lost in 5.7.0 rebase