Merge branch 'master' into epel7

This commit is contained in:
Rex Dieter 2016-06-14 16:01:10 -05:00
commit 44685f0459
9 changed files with 157 additions and 148 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/qtdeclarative-opensource-src-5.6.0-beta.tar.gz
/qtdeclarative-opensource-src-5.6.0-rc.tar.xz
/qtdeclarative-opensource-src-5.6.0.tar.xz
/qtdeclarative-opensource-src-5.6.1.tar.xz

View File

@ -1,33 +0,0 @@
From 9783991b615484d2926e9648b10ea090af81d93f Mon Sep 17 00:00:00 2001
From: Mitch Curtis <mitch.curtis@theqtcompany.com>
Date: Wed, 3 Feb 2016 12:57:05 +0100
Subject: [PATCH 08/61] Fix crash when Canvas has negative width or height
m_fbo is null when using a threaded render loop.
Change-Id: I297ba651f9605f1718dbe9d09bd30e9682fb8401
Task-number: QTBUG-50085
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
---
src/quick/items/context2d/qquickcontext2dtexture.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp
index 73b0b55..5ac971d 100644
--- a/src/quick/items/context2d/qquickcontext2dtexture.cpp
+++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp
@@ -599,6 +599,11 @@ QPaintDevice* QQuickContext2DFBOTexture::beginPainting()
void QQuickContext2DFBOTexture::endPainting()
{
QQuickContext2DTexture::endPainting();
+
+ // There may not be an FBO due to zero width or height.
+ if (!m_fbo)
+ return;
+
if (m_multisampledFbo)
QOpenGLFramebufferObject::blitFramebuffer(m_fbo, m_multisampledFbo);
--
1.9.3

View File

@ -1,60 +0,0 @@
From 427ca15418c05e628bae3451c263be198e721ba9 Mon Sep 17 00:00:00 2001
From: Robin Burchell <robin.burchell@viroteck.net>
Date: Wed, 17 Feb 2016 01:35:29 +0100
Subject: [PATCH 19/61] Revert "Fix crash on QQmlEngine destruction."
This reverts commit 2e75be5f64fb21cbbdff3353dbd507c2ca26946a.
This patch was originally written by Andrew den Exter in
222e06bf4ed509e72c1533cbe1d4859ca96933f3, externally from the main Qt tree. I
upstreamed this as part of our porting efforts.
Some time later, this was accidentally reverted in
2e75be5f64fb21cbbdff3353dbd507c2ca26946a: we can't go back in time to examine
exactly what happened, but presumably Andrew didn't notice that I had upstreamed
this, attempted to apply the patch and ignored the "already applied" warning by
accident - and continued on dutifully with the patch accidentally reverted.
This change is correct, though, and is thus reinstated.
Change-Id: Idfe6ab39ad011f0401de25fe056aa3eb3fb8b424
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
---
src/qml/qml/qqmlengine.cpp | 4 ++--
src/qml/qml/qqmlengine_p.h | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index 109cfac..2cfe468 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -598,8 +598,8 @@ QQmlEnginePrivate::QQmlEnginePrivate(QQmlEngine *e)
workerScriptEngine(0),
activeObjectCreator(0),
networkAccessManager(0), networkAccessManagerFactory(0), urlInterceptor(0),
- scarceResourcesRefCount(0), typeLoader(e), importDatabase(e), uniqueId(1),
- incubatorCount(0), incubationController(0)
+ scarceResourcesRefCount(0), importDatabase(e), typeLoader(e),
+ uniqueId(1), incubatorCount(0), incubationController(0)
{
}
diff --git a/src/qml/qml/qqmlengine_p.h b/src/qml/qml/qqmlengine_p.h
index 26ee3bd..072a6c4 100644
--- a/src/qml/qml/qqmlengine_p.h
+++ b/src/qml/qml/qqmlengine_p.h
@@ -166,9 +166,8 @@ public:
void referenceScarceResources();
void dereferenceScarceResources();
- QQmlTypeLoader typeLoader;
QQmlImportDatabase importDatabase;
-
+ QQmlTypeLoader typeLoader;
QString offlineStoragePath;
--
1.9.3

View File

@ -1,30 +0,0 @@
From e01bed44bca9bd0919f70dfc14f8297415d61bd9 Mon Sep 17 00:00:00 2001
From: Gunnar Sletta <gunnar@sletta.org>
Date: Mon, 15 Feb 2016 08:02:50 +0100
Subject: [PATCH 29/61] Avoid div-by-zero when nothing is rendered.
Change-Id: I3eb57baf1812f831335429cc7d2b4424f3cfa785
Task-number: QTBUG-50929
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
---
src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index b1792d2..dd1ff14 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -2654,7 +2654,9 @@ void Renderer::render()
if (m_alphaBatches.size())
std::sort(&m_alphaBatches.first(), &m_alphaBatches.last() + 1, qsg_sort_batch_increasing_order);
- m_zRange = 1.0 / (m_nextRenderOrder);
+ m_zRange = m_nextRenderOrder != 0
+ ? 1.0 / (m_nextRenderOrder)
+ : 0;
}
if (Q_UNLIKELY(debug_render())) timeSorting = timer.restart();
--
1.9.3

View File

@ -8,21 +8,29 @@
%if ! 0%{?bootstrap}
%ifarch %{arm} %{ix86} x86_64
%define docs 1
%global docs 1
#global tests 1
%endif
%endif
%ifarch %{ix86}
%global nosse2_hack 1
## TODO:
# * consider debian's approach of runtime detection instead:
# https://codereview.qt-project.org/#/c/127354/
%endif
#define prerelease
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.6.0
Release: 4%{?prerelease:.%{prerelease}}%{?dist}
Version: 5.6.1
Release: 2%{?prerelease:.%{prerelease}}%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
Url: http://www.qt.io
Source0: http://download.qt.io/snapshots/qt/5.6/%{version}%{?prerelease:-%{prerelease}}/submodules/%{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}.tar.xz
Source0: http://download.qt.io/official_releases/qt/5.6/%{version}%{?prerelease:-%{prerelease}}/submodules/%{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}.tar.xz
# support no_sse2 CONFIG (fedora i686 builds cannot assume -march=pentium4 -msse2 -mfpmath=sse flags, or the JIT that needs them)
# https://codereview.qt-project.org/#change,73710
@ -34,9 +42,18 @@ Patch1: qtdeclarative-opensource-src-5.5.0-no_sse2.patch
Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch
## upstream patches
Patch8: 0008-Fix-crash-when-Canvas-has-negative-width-or-height.patch
Patch19: 0019-Revert-Fix-crash-on-QQmlEngine-destruction.patch
Patch29: 0029-Avoid-div-by-zero-when-nothing-is-rendered.patch
## upstreamable patches
# use system double-conversation
%if 0%{?fedora} || 0%{?rhel} > 6
%global system_doubleconv 1
BuildRequires: double-conversion-devel
%endif
Patch200: qtdeclarative-system_doubleconv.patch
# https://bugs.kde.org/show_bug.cgi?id=346118#c108
Patch201: qtdeclarative-kdebug346118.patch
# additional i686/qml workaround (on top of existing patch135), https://bugzilla.redhat.com/1331593
Patch235: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch
## upstream patches under review
# Check-for-NULL-from-glGetStrin
@ -46,12 +63,20 @@ Obsoletes: qt5-qtjsbackend < 5.2.0
BuildRequires: cmake
BuildRequires: qt5-qtbase-devel >= %{version}
BuildRequires: qt5-qtbase-private-devel
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
%if ! 0%{?bootstrap}
BuildRequires: pkgconfig(Qt5XmlPatterns)
%endif
BuildRequires: python
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
%if 0%{?tests}
BuildRequires: dbus-x11
BuildRequires: mesa-dri-drivers
BuildRequires: time
BuildRequires: xorg-x11-server-Xvfb
%endif
%description
%{summary}.
@ -59,6 +84,7 @@ BuildRequires: python
%package devel
Summary: Development files for %{name}
Obsoletes: qt5-qtjsbackend-devel < 5.2.0
Provides: %{name}-private-devel = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel%{?_isa}
%description devel
@ -91,24 +117,22 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%prep
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
%if 0%{?nosse2_hack}
%patch1 -p1 -b .no_sse2
%endif
%patch2 -p1 -b .QQuickShaderEffectSource_deadlock
%patch8 -p1 -b .0008
%patch19 -p1 -b .0019
%patch29 -p1 -b .0029
%if 0%{?system_doubleconv}
%patch200 -p1 -b .system_doubleconv
rm -rfv src/3rdparty/double-conversion
%endif
%patch201 -p0 -b .kdebug346118
%patch235 -p1 -b .qml_no-lifetime-dse
%patch500 -p1 -b .Check-for-NULL-from-glGetString
%build
# build with -fno-delete-null-pointer-checks to workaround
# https://bugzilla.redhat.com/show_bug.cgi?id=1303643
CFLAGS="$RPM_OPT_FLAGS -fno-delete-null-pointer-checks"
CXXFLAGS="$RPM_OPT_FLAGS -fno-delete-null-pointer-checks"
export CFLAGS CXXFLAGS
mkdir %{_target_platform}
pushd %{_target_platform}
%{qmake_qt5} ..
@ -116,7 +140,7 @@ popd
make %{?_smp_mflags} -C %{_target_platform}
%ifarch %{ix86}
%if 0%{?nosse2_hack}
# build libQt5Qml with no_sse2
mkdir -p %{_target_platform}-no_sse2
pushd %{_target_platform}-no_sse2
@ -134,7 +158,7 @@ make %{?_smp_mflags} docs -C %{_target_platform}
%install
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
%ifarch %{ix86}
%if 0%{?nosse2_hack}
mkdir -p %{buildroot}%{_qt5_libdir}/sse2
mv %{buildroot}%{_qt5_libdir}/libQt5Qml.so.5* %{buildroot}%{_qt5_libdir}/sse2/
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-no_sse2/src/qml
@ -171,15 +195,36 @@ popd
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
pushd %{buildroot}%{_qt5_libdir}
for prl_file in libQt5*.prl ; do
sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
sed -i \
-e "/^QMAKE_PRL_BUILD_DIR/d" \
-e "/-ldouble-conversion/d" \
${prl_file}
if [ -f "$(basename ${prl_file} .prl).so" ]; then
rm -fv "$(basename ${prl_file} .prl).la"
sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
else
sed -i \
-e "/^QMAKE_PRL_LIBS/d" \
-e "/-ldouble-conversion/d" \
$(basename ${prl_file} .prl).la
fi
done
popd
%check
test -z "$(grep double-conversion %{buildroot}%{_qt5_libdir}/*.{la,prl})"
%if 0%{?tests}
export CTEST_OUTPUT_ON_FAILURE=1
export PATH=%{buildroot}%{_qt5_bindir}:$PATH
export LD_LIBRARY_PATH=%{buildroot}%{_qt5_libdir}
make sub-tests-all %{?_smp_mflags} -C %{_target_platform}
xvfb-run -a \
dbus-launch --exit-with-session \
time \
make check -k -C %{_target_platform}/tests ||:
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@ -187,7 +232,7 @@ popd
%{!?_licensedir:%global license %%doc}
%license LICENSE.LGPL* LGPL_EXCEPTION.txt
%{_qt5_libdir}/libQt5Qml.so.5*
%ifarch %{ix86}
%if 0%{?nosse2_hack}
%{_qt5_libdir}/sse2/libQt5Qml.so.5*
%endif
%{_qt5_libdir}/libQt5Quick.so.5*
@ -206,7 +251,6 @@ popd
%{_qt5_libdir}/libQt5Qml.so
%{_qt5_libdir}/libQt5Qml.prl
%{_qt5_libdir}/libQt5Quick*.so
%{_qt5_libdir}/libQt5QuickWidgets.so.5
%{_qt5_libdir}/libQt5Quick*.prl
%dir %{_qt5_libdir}/cmake/Qt5Quick*/
%{_qt5_libdir}/cmake/Qt5*/Qt5*Config*.cmake
@ -231,6 +275,40 @@ popd
%changelog
* Fri Jun 10 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-2
- strip double-conversion references from .la/.prl files
* Thu Jun 09 2016 Jan Grulich <jgrulich@redhat.com> - 5.6.1-1
- Update to 5.6.1
* Thu Jun 02 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-12
- pull in upstream qml/jsruntime workaround (ie, apply compiler workarounds only for src/qml/)
* Tue May 31 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-11
- include crasher workaround (#1259472,kde#346118)
* Sat May 28 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-10
- macro'ize no_sse2 hack (to make it easier to enable/disable)
- re-introduce -fno-delete-null-pointer-checks here (following upstream)
- add -fno-lifetime-dse too, helps fix i686/qml crasher (#1331593)
- disable tests (for now, not useful yet)
* Fri May 20 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-9
- Use system double-conversion (#1078524)
* Thu May 19 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-8
- -devel: don't own libQt5QuickWidgets.so.5 (#1337621)
* Thu May 05 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-7
- BR: mesa-dri-drivers (tests)
* Thu May 05 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-6
- drop local -fno-delete-null-pointer-checks hack, used in all Qt5 builds now
- add %%check
* Sun Apr 17 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-5
- BR: qt5-qtbase-private-devel, -devel: Provides: -private-devel
* Fri Mar 25 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-4
- backport upstream fixes
- drop -fno-delete-null-pointer-checks hack (included in qt5-rpm-macros as needed now)

View File

@ -0,0 +1,19 @@
--- src/qml/util/qqmladaptormodel.cpp.orig 2016-05-27 17:06:31.192332166 -0300
+++ src/qml/util/qqmladaptormodel.cpp 2016-05-27 18:37:27.764552053 -0300
@@ -163,8 +163,14 @@ public:
signalIndexes.append(propertyId + signalOffset);
}
- for (int i = 0, c = items.count(); i < c; ++i) {
- QQmlDelegateModelItem *item = items.at(i);
+ const QList<QQmlDelegateModelItem *> copy = items;
+ for (int i = 0, c = copy.count(); i < c; ++i) {
+ // Applying the same logic used in QQmlDelegateModel::_q_itemsRemoved().
+ QQmlDelegateModelItem *item = copy.at(i);
+ if (!items.contains(item)) {
+ continue;
+ }
+
const int idx = item->modelIndex();
if (idx >= index && idx < index + count) {
for (int i = 0; i < signalIndexes.count(); ++i)

View File

@ -0,0 +1,12 @@
diff -up qtdeclarative-opensource-src-5.6.0/src/qml/qml.pro.1135 qtdeclarative-opensource-src-5.6.0/src/qml/qml.pro
--- qtdeclarative-opensource-src-5.6.0/src/qml/qml.pro.1135 2016-06-02 08:43:24.509068141 -0500
+++ qtdeclarative-opensource-src-5.6.0/src/qml/qml.pro 2016-06-02 10:25:28.813766581 -0500
@@ -21,7 +21,7 @@ exists("qqml_enable_gcov") {
greaterThan(QT_GCC_MAJOR_VERSION, 5) {
# Our code is bad. Temporary workaround.
- QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks
+ QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse
}
QMAKE_DOCS = $$PWD/doc/qtqml.qdocconf

View File

@ -0,0 +1,22 @@
diff -up qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/jsruntime.pri.system_doubleconv qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/jsruntime.pri
--- qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/jsruntime.pri.system_doubleconv 2016-05-20 08:25:07.986878324 -0500
+++ qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/jsruntime.pri 2016-05-20 11:21:05.059471545 -0500
@@ -118,4 +118,5 @@ valgrind {
ios: DEFINES += ENABLE_ASSEMBLER_WX_EXCLUSIVE=1
-include(../../3rdparty/double-conversion/double-conversion.pri)
+INCLUDEPATH += /usr/include/double-conversion
+LIBS_PRIVATE += -ldouble-conversion
diff -up qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/qv4runtime.cpp.system_doubleconv qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/qv4runtime.cpp
--- qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/qv4runtime.cpp.system_doubleconv 2016-02-26 03:34:34.000000000 -0600
+++ qtdeclarative-opensource-src-5.6.0/src/qml/jsruntime/qv4runtime.cpp 2016-05-20 11:22:00.603641534 -0500
@@ -60,7 +60,7 @@
#include <wtf/MathExtras.h>
-#include "../../3rdparty/double-conversion/double-conversion.h"
+#include <double-conversion.h>
#ifdef QV4_COUNT_RUNTIME_FUNCTIONS
# include <QtCore/QBuffer>

View File

@ -1 +1 @@
4cb03d616533933557c6ccf2620e809b qtdeclarative-opensource-src-5.6.0.tar.xz
ea2a2602b8a91f2618a36be09bcd79e9 qtdeclarative-opensource-src-5.6.1.tar.xz