Merge branch 'master' into f23

This commit is contained in:
Rex Dieter 2016-05-31 09:38:49 -05:00
commit 96362ae293
3 changed files with 118 additions and 9 deletions

View File

@ -8,16 +8,21 @@
%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
%endif
#define prerelease
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.6.0
Release: 5%{?prerelease:.%{prerelease}}%{?dist}
Release: 11%{?prerelease:.%{prerelease}}%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -38,6 +43,16 @@ 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
Patch100: qtdeclarative-system_doubleconv.patch
# https://bugs.kde.org/show_bug.cgi?id=346118#c108
Patch101: qtdeclarative-kdebug346118.patch
## upstream patches under review
# Check-for-NULL-from-glGetStrin
Patch500: Check-for-NULL-from-glGetString.patch
@ -53,6 +68,14 @@ BuildRequires: pkgconfig(Qt5XmlPatterns)
%endif
BuildRequires: python
%if 0%{?tests}
BuildRequires: dbus-x11
BuildRequires: mesa-dri-drivers
BuildRequires: time
BuildRequires: xorg-x11-server-Xvfb
%endif
%description
%{summary}.
@ -92,23 +115,34 @@ 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}
%patch100 -p1 -b .system_doubleconv
rm -rfv src/3rdparty/double-conversion
%endif
%patch101 -p0 -b .kdebug346118
%patch500 -p1 -b .Check-for-NULL-from-glGetString
%build
%if 0%{?fedora} > 23
# 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"
# build with -fno-lifetime-dse to workaround
# https://bugzilla.redhat.com/1331593
CFLAGS="$RPM_OPT_FLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse"
CXXFLAGS="$RPM_OPT_FLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse"
export CFLAGS CXXFLAGS
%endif
mkdir %{_target_platform}
pushd %{_target_platform}
@ -117,7 +151,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
@ -135,7 +169,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
@ -181,6 +215,19 @@ done
popd
%check
%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
@ -188,7 +235,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*
@ -207,7 +254,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
@ -232,6 +278,28 @@ popd
%changelog
* 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

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,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 += -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>