diff --git a/qt5-qtdeclarative.spec b/qt5-qtdeclarative.spec index 6484dac..e0f7543 100644 --- a/qt5-qtdeclarative.spec +++ b/qt5-qtdeclarative.spec @@ -17,7 +17,7 @@ Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} Version: 5.5.1 -Release: 2%{?dist} +Release: 3%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -28,6 +28,11 @@ Source0: http://download.qt.io/official_releases/qt/5.5/%{version}%{?prerelease: # https://codereview.qt-project.org/#change,73710 Patch1: qtdeclarative-opensource-src-5.5.0-no_sse2.patch +# workaround for possible deadlock condition in QQuickShaderEffectSource +# https://bugzilla.redhat.com/show_bug.cgi?id=1237269 +# https://bugs.kde.org/show_bug.cgi?id=348385 +Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch + Obsoletes: qt5-qtjsbackend < 5.2.0 BuildRequires: qt5-qtbase-devel >= %{version} @@ -76,6 +81,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %prep %setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}} %patch1 -p1 -b .no_sse2 +%patch2 -p1 -b .QQuickShaderEffectSource_deadlock %build @@ -202,6 +208,9 @@ popd %changelog +* Sat Oct 24 2015 Rex Dieter 5.5.1-3 +- workaround QQuickShaderEffectSource::updatePaintNode deadlock (#1237269, kde#348385) + * Thu Oct 15 2015 Helio Chissini de Castro - 5.5.1-2 - Update to final release 5.5.1 diff --git a/qtdeclarative-QQuickShaderEffectSource_deadlock.patch b/qtdeclarative-QQuickShaderEffectSource_deadlock.patch new file mode 100644 index 0000000..ce3660c --- /dev/null +++ b/qtdeclarative-QQuickShaderEffectSource_deadlock.patch @@ -0,0 +1,15 @@ +--- qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp 2015-06-30 07:30:51.938794778 +0200 ++++ qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp.orig 2015-06-30 07:29:47.019163937 +0200 +@@ -632,8 +632,12 @@ + + const QSize minTextureSize = d->sceneGraphContext()->minimumFBOSize(); + // Keep power-of-two by doubling the size. ++ if (textureSize.width() < 1) ++ textureSize.rwidth() = 1; + while (textureSize.width() < minTextureSize.width()) + textureSize.rwidth() *= 2; ++ if (textureSize.height() < 1) ++ textureSize.rheight() = 1; + while (textureSize.height() < minTextureSize.height()) + textureSize.rheight() *= 2; +