Compare commits

..

3 Commits
master ... f24

Author SHA1 Message Date
Rex Dieter 17274dcf21 (branch backport): drop shadow/out-of-tree builds (#1456211,QTBUG-37417) 2017-06-19 06:26:20 -05:00
Rex Dieter b5d9e92abf pull in upstream crash fix (QTBUG-46263) 2017-04-11 06:22:01 -05:00
Rex Dieter 9087a6831b 5.6.2 2016-11-16 16:22:38 -06:00
11 changed files with 449 additions and 239 deletions

5
.gitignore vendored
View File

@ -1,4 +1 @@
/qtdeclarative-everywhere-src-5.11.3.tar.xz
/qtdeclarative-everywhere-src-5.12.1.tar.xz
/qtdeclarative-everywhere-src-5.12.3.tar.xz
/qtdeclarative-everywhere-src-5.12.4.tar.xz
/qtdeclarative-opensource-src-5.6.2.tar.xz

View File

@ -0,0 +1,35 @@
From 4d375f3f2b95bfcb322402df3525db6cc7a723ce Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@digia.com>
Date: Tue, 4 Oct 2016 11:42:10 +0200
Subject: [PATCH 26/82] QML: Clear weak references on Object destruction for
C++-owned QObjects
Otherwise a re-use of the C++-owned QObject will have a back reference
to a possibly GCed QV4::QObjectWrapper, which results in exciting
behavior.
Task-number: QTBUG-46263
Change-Id: Iff0e36f9e67c01abd02cfb5a89605d0f26ddb0de
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
---
src/qml/jsruntime/qv4qobjectwrapper.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
index 246df4c..77de84b 100644
--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -1042,6 +1042,10 @@ void QObjectWrapper::destroyObject(bool lastCall)
delete h->object;
else
h->object->deleteLater();
+ } else {
+ // If the object is C++-owned, we still have to release the weak reference we have
+ // to it.
+ ddata->jsWrapper.clear();
}
}
}
--
2.9.3

View File

@ -0,0 +1,96 @@
From d4efd5ab810e92202efe672be29136324dd2a3f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C4=81vis=20Mos=C4=81ns?= <davispuh@gmail.com>
Date: Mon, 28 Dec 2015 05:43:18 +0200
Subject: [PATCH] Check for NULL from glGetString
glGetString can return NULL pointer in case of error
so check for it before using.
Change-Id: Ia07424c8f2b3ce6dce675514900a509e3ef3b739
---
src/particles/qquickimageparticle.cpp | 6 ++++--
src/quick/scenegraph/qsgcontext.cpp | 22 ++++++++++++++++------
.../qsgdefaultdistancefieldglyphcache.cpp | 8 +++++---
src/quick/scenegraph/util/qsgatlastexture.cpp | 4 ++--
4 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
index d78a350..b54861e 100644
--- a/src/particles/qquickimageparticle.cpp
+++ b/src/particles/qquickimageparticle.cpp
@@ -1276,14 +1276,16 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node)
// OS X 10.8.3 introduced a bug in the AMD drivers, for at least the 2011 macbook pros,
// causing point sprites who read gl_PointCoord in the frag shader to come out as
// green-red blobs.
- if (perfLevel < Deformable && strstr((char *) glGetString(GL_VENDOR), "ATI")) {
+ const char *vendor = (const char *) glGetString(GL_VENDOR);
+ if (perfLevel < Deformable && vendor && strstr(vendor, "ATI")) {
perfLevel = Deformable;
}
#endif
#ifdef Q_OS_LINUX
// Nouveau drivers can potentially freeze a machine entirely when taking the point-sprite path.
- if (perfLevel < Deformable && strstr((const char *) glGetString(GL_VENDOR), "nouveau"))
+ const char *vendor = (const char *) glGetString(GL_VENDOR);
+ if (perfLevel < Deformable && vendor && strstr(vendor, "nouveau"))
perfLevel = Deformable;
#endif
diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp
index dd6977e..43d549f 100644
--- a/src/quick/scenegraph/qsgcontext.cpp
+++ b/src/quick/scenegraph/qsgcontext.cpp
@@ -624,14 +624,24 @@ void QSGRenderContext::initialize(QOpenGLContext *context)
m_sg->renderContextInitialized(this);
#ifdef Q_OS_LINUX
+ while (funcs->glGetError() != GL_NO_ERROR);
+
const char *vendor = (const char *) funcs->glGetString(GL_VENDOR);
- if (strstr(vendor, "nouveau"))
- m_brokenIBOs = true;
const char *renderer = (const char *) funcs->glGetString(GL_RENDERER);
- if (strstr(renderer, "llvmpipe"))
- m_serializedRender = true;
- if (strstr(vendor, "Hisilicon Technologies") && strstr(renderer, "Immersion.16"))
- m_brokenIBOs = true;
+
+ if (vendor && renderer) {
+ if (strstr(vendor, "nouveau"))
+ m_brokenIBOs = true;
+ if (strstr(renderer, "llvmpipe"))
+ m_serializedRender = true;
+ if (strstr(vendor, "Hisilicon Technologies") && strstr(renderer, "Immersion.16"))
+ m_brokenIBOs = true;
+ } else {
+ GLenum err;
+ while ((err = funcs->glGetError()) != GL_NO_ERROR) {
+ qWarning("QSGRenderContext::initialize: GL error %x from glGetString", err);
+ }
+ }
#endif
emit initialized();
diff --git a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
index dcc485c..43e234b 100644
--- a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
+++ b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
@@ -488,9 +488,11 @@ bool QSGDefaultDistanceFieldGlyphCache::useTextureUploadWorkaround() const
static bool set = false;
static bool useWorkaround = false;
if (!set) {
- useWorkaround = qstrcmp(reinterpret_cast<const char*>(m_funcs->glGetString(GL_RENDERER)),
- "Mali-400 MP") == 0;
- set = true;
+ const char *renderer = reinterpret_cast<const char*>(m_funcs->glGetString(GL_RENDERER));
+ if (renderer) {
+ useWorkaround = qstrcmp(renderer, "Mali-400 MP") == 0;
+ set = true;
+ }
}
return useWorkaround;
}
--
1.9.3

View File

@ -1,46 +1,72 @@
%global qt_module qtdeclarative
# definition borrowed from qtbase
%global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9
# define to build docs, need to undef this for bootstrapping
# where qt5-qttools builds are not yet available
# only primary archs (for now), allow secondary to bootstrap
#global bootstrap 1
%if ! 0%{?bootstrap}
%ifarch %{arm} %{ix86} x86_64
%global docs 1
#global tests 1
%endif
%endif
%global nosse2_hack 1
## TODO:
# * consider debian's approach of runtime detection instead:
# https://codereview.qt-project.org/#/c/127354/
#define prerelease
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.12.4
Version: 5.6.2
Release: 3%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
Url: http://www.qt.io
%global majmin %(echo %{version} | cut -d. -f1-2)
Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.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
# header file to workaround multilib issue
# https://bugzilla.redhat.com/show_bug.cgi?id=1441343
Source5: qv4global_p-multilib.h
# 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
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
## upstream patches
# https://bugreports.qt.io/browse/QTBUG-46263
# http://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4d375f3f2b95bfcb322402df3525db6cc7a723ce
Patch26: 0026-QML-Clear-weak-references-on-Object-destruction-for-.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
# filter qml provides
%global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$
## upstream patches under review
# Check-for-NULL-from-glGetStrin
Patch500: Check-for-NULL-from-glGetString.patch
Obsoletes: qt5-qtjsbackend < 5.2.0
Obsoletes: qt5-qtdeclarative-render2d < 5.7.1-10
BuildRequires: gcc-c++
BuildRequires: qt5-rpm-macros >= %{version}
BuildRequires: qt5-qtbase-devel >= %{version}
BuildRequires: qt5-qtbase-private-devel
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
BuildRequires: python%{python3_pkgversion}
%if 0%{?bootstrap}
Obsoletes: %{name}-examples < %{version}-%{release}
%global no_examples CONFIG-=compile_examples
%if ! 0%{?bootstrap}
BuildRequires: qt5-qtxmlpatterns-devel
%endif
BuildRequires: python
%if 0%{?tests}
BuildRequires: dbus-x11
@ -49,13 +75,13 @@ BuildRequires: time
BuildRequires: xorg-x11-server-Xvfb
%endif
%description
%{summary}.
%package devel
Summary: Development files for %{name}
Obsoletes: qt5-qtjsbackend-devel < 5.2.0
Obsoletes: qt5-qtdeclarative-render2d-devel < 5.7.1-10
Provides: %{name}-private-devel = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel%{?_isa}
@ -68,6 +94,18 @@ Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description static
%{summary}.
%if 0%{?docs}
%package doc
Summary: API documentation for %{name}
License: GFDL
Requires: %{name} = %{version}-%{release}
BuildRequires: qt5-qdoc
BuildRequires: qt5-qhelpgenerator
BuildArch: noarch
%description doc
%{summary}.
%endif
%package examples
Summary: Programming examples for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
@ -76,28 +114,52 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%prep
%autosetup -n %{qt_module}-everywhere-src-%{version}
%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
%if 0%{?system_doubleconv}
%patch200 -p1 -b .system_doubleconv
rm -rfv src/3rdparty/double-conversion
%endif
%patch201 -p0 -b .kdebug346118
%patch500 -p1 -b .Check-for-NULL-from-glGetString
%build
%if 0%{?nosse2_hack}
# build libQt5Qml with no_sse2
mkdir -p %{_target_platform}-no_sse2
pushd %{_target_platform}-no_sse2
%{qmake_qt5} -config no_sse2 ..
make sub-src-clean
make %{?_smp_mflags} -C src/qml
popd
%endif
# HACK so calls to "python" get what we want
ln -s %{__python3} python
export PATH=`pwd`:$PATH
%{qmake_qt5}
%qmake_qt5
make %{?_smp_mflags}
%make_build
%if 0%{?docs}
make %{?_smp_mflags} docs
%endif
%install
%make_install INSTALL_ROOT=%{buildroot}
make install INSTALL_ROOT=%{buildroot}
%ifarch %{multilib_archs}
# multilib: qv4global_p.h
mv %{buildroot}%{_qt5_headerdir}/QtQml/%{version}/QtQml/private/qv4global_p.h \
%{buildroot}%{_qt5_headerdir}/QtQml/%{version}/QtQml/private/qv4global_p-%{__isa_bits}.h
install -p -m644 -D %{SOURCE5} %{buildroot}%{_qt5_headerdir}/QtQml/%{version}/QtQml/private/qv4global_p.h
%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
%endif
%if 0%{?docs}
make install_docs INSTALL_ROOT=%{buildroot}
%endif
# hardlink files to %{_bindir}, add -qt5 postfix to not conflict
@ -127,14 +189,24 @@ 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}
rm -fv "$(basename ${prl_file} .prl).la"
sed -i -e "/^QMAKE_PRL_LIBS/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"
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
@ -147,18 +219,24 @@ make check -k -C tests ||:
%endif
%ldconfig_scriptlets
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE.LGPL*
%{!?_licensedir:%global license %%doc}
%license LICENSE.LGPL* LGPL_EXCEPTION.txt
%{_qt5_libdir}/libQt5Qml.so.5*
%if 0%{?nosse2_hack}
%{_qt5_libdir}/sse2/libQt5Qml.so.5*
%endif
%{_qt5_libdir}/libQt5Quick.so.5*
%{_qt5_libdir}/libQt5QuickWidgets.so.5*
%{_qt5_libdir}/libQt5QuickParticles.so.5*
%{_qt5_libdir}/libQt5QuickShapes.so.5*
%{_qt5_libdir}/libQt5QuickTest.so.5*
%{_qt5_plugindir}/qmltooling/
%{_qt5_archdatadir}/qml/
%dir %{_qt5_libdir}/cmake/Qt5Qml/
%{_qt5_libdir}/cmake/Qt5Qml/Qt5Qml_*Factory.cmake
%files devel
%{_bindir}/qml*
@ -172,179 +250,45 @@ make check -k -C tests ||:
%{_qt5_libdir}/cmake/Qt5*/Qt5*Config*.cmake
%{_qt5_libdir}/pkgconfig/Qt5*.pc
%{_qt5_archdatadir}/mkspecs/modules/*.pri
%{_qt5_archdatadir}/mkspecs/features/*.prf
%dir %{_qt5_libdir}/cmake/Qt5Qml/
%{_qt5_libdir}/cmake/Qt5Qml/Qt5Qml_*Factory.cmake
%files static
%{_qt5_libdir}/libQt5QmlDevTools.a
%{_qt5_libdir}/libQt5QmlDevTools.*a
%{_qt5_libdir}/libQt5QmlDevTools.prl
%{_qt5_libdir}/libQt5PacketProtocol.a
%{_qt5_libdir}/libQt5PacketProtocol.prl
%{_qt5_libdir}/libQt5QmlDebug.a
%{_qt5_libdir}/libQt5QmlDebug.prl
%if ! 0%{?no_examples:1}
%if 0%{?docs}
%files doc
%license LICENSE.FDL
%{_qt5_docdir}/qtqml.qch
%{_qt5_docdir}/qtqml/
%{_qt5_docdir}/qtquick.qch
%{_qt5_docdir}/qtquick/
%endif
%files examples
%{_qt5_examplesdir}/
%endif
%changelog
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.12.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jun 19 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.6.2-3
- (branch backport): drop shadow/out-of-tree builds (#1456211,QTBUG-37417)
* Tue Jul 16 2019 Rex Dieter <rdieter@fedoraproject.org> - 5.12.4-2
- build with python3
* Tue Apr 11 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.6.2-2
- pull in upstream crash fix (QTBUG-46263)
* Fri Jun 14 2019 Jan Grulich <jgrulich@redhat.com> - 5.12.4-1
- 5.12.4
* Wed Nov 02 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.2-1
- 5.6.2
* Tue Jun 04 2019 Jan Grulich <jgrulich@redhat.com> - 5.12.3-1
- 5.12.3
* Thu Jun 16 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.1-5
- backport 5.6 branch fixes
* Fri Mar 15 2019 Rex Dieter <rdieter@fedoraproject.org> - 5.12.1-2
- de-bootstrap
* Wed Jun 15 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-4
- drop pkgconfig-style Qt5 deps
* Mon Feb 04 2019 Rex Dieter <rdieter@fedoraproject.org> - 5.12.1-1
- 5.12.1
- drop remants of sse2 hack support
- add bootstrap support (examples)
* Wed Jun 15 2016 Jan Grulich <jgrulich@redhat.com> - 5.6.1-3
- Apply no_sse2 hack to all architecturs to make qt5-qtdeclarative-devel multilib-clean
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.11.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Dec 07 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.3-1
- 5.11.3
* Fri Sep 21 2018 Jan Grulich <jgrulich@redhat.com> - 5.11.2-1
- 5.11.2
* Sun Jul 15 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.1-3
- BR: /usr/bin/python
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.11.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.1-1
- 5.11.1
* Mon Jun 18 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.0-2
- %%ix86: nosse2_hack on < f29 only
* Wed May 23 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.11.0-1
- 5.11.0
- i686: use nosse2_hack again
* Tue Apr 03 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.10.1-5
- pull in candidate memleak fix (review#224684)
* Sun Mar 18 2018 Iryna Shcherbina <ishcherb@redhat.com> - 5.10.1-4
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Thu Mar 08 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.10.1-3
- BR: qt5-rpm-macros
* Mon Mar 05 2018 Rex Dieter <rdieter@fedoraproject.org> - 5.10.1-2
- BR: gcc-c++, use %%make_build %%make_install %%ldconfig_scriptlets
* Tue Feb 13 2018 Jan Grulich <jgrulich@redhat.com> - 5.10.1-1
- 5.10.1
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 5.10.0-2
- Escape macros in %%changelog
* Tue Dec 19 2017 Jan Grulich <jgrulich@redhat.com> - 5.10.0-1
- 5.10.0
* Thu Nov 23 2017 Jan Grulich <jgrulich@redhat.com> - 5.9.3-1
- 5.9.3
* Tue Oct 31 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.2-3
- Obsoletes: qt5-qtdeclarative-render2d
* Thu Oct 26 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.2-2
- revert commit causing regresions (QTBUG-64017)
* Mon Oct 09 2017 Jan Grulich <jgrulich@redhat.com> - 5.9.2-1
- 5.9.2
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jul 19 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.1-1
- 5.9.1
* Thu Jun 15 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.0-3
- drop shadow/out-of-tree builds (#1456211,QTBUG-37417)
- use debian's i686/sse2 support patch
* Fri Jun 02 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.0-2
- rebuild
* Wed May 31 2017 Helio Chissini de Castro <helio@kde.org> - 5.9.0-1
- Upstream official release
* Fri May 26 2017 Helio Chissini de Castro <helio@kde.org> - 5.9.0-0.1.rc
- Upstream Release Candidate retagged
* Wed May 24 2017 Helio Chissini de Castro <helio@kde.org> - 5.9.0-0.rc.1
- Upstream Release Candidate 1
* Sun May 14 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.9.0-0.5.beta3
- Conflict in qt5-qtdeclarative-devel (#1441343), fix Release: 1%%{?dist}
* Mon May 08 2017 Than Ngo <than@redhat.com> - 5.9.0-0.beta.4
- drop useless qtdeclarative-opensource-src-5.9.0-v4bootstrap.patch,
apply correct qtdeclarative-opensource-src-5.9.0-no_sse2.patch to
fix the build issue in JIT on ppc64/ppc64le/s390x
* Fri May 05 2017 Helio Chissini de Castro <helio@kde.org> - 5.9.0-0.beta.3
- New upstream beta3 release
* Sun Apr 16 2017 Helio Chissini de Castro <helio@kde.org> - 5.9.0-0.beta.1
- New upstream beta release
* Mon Apr 03 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.8.0-3
- build -doc on all archs
* Thu Mar 30 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.8.0-2
- de-bootstrap
* Fri Jan 27 2017 Helio Chissini de Castro <helio@kde.org> - 5.8.0-1
- New upstream version
- bootstrap
* Mon Jan 02 2017 Rex Dieter <rdieter@math.unl.edu> - 5.7.1-6
- filter qml provides
* Sat Dec 17 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-5
- restore bootstrap/doc macros, drop pkgconfig-style deps (for now)
* Sat Dec 10 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-4
- drop BR: cmake (handled by qt5-rpm-macros now)
* Fri Dec 09 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-3
- rebuild
* Fri Dec 09 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-2
- 5.7.1 dec5 snapshot
* Wed Nov 09 2016 Helio Chissini de Castro <helio@kde.org> - 5.7.1-1
- New upstream version
* Mon Jul 04 2016 Helio Chissini de Castro <helio@kde.org> - 5.7.0-2
- Compiled with gcc
* Tue Jun 14 2016 Helio Chissini de Castro <helio@kde.org> - 5.7.0-1
- Qt 5.7.0 release
* Thu Jun 09 2016 Helio Chissini de Castro <helio@kde.org> - 5.7.0-0.1
- Prepare for 5.7.0
* 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
@ -399,29 +343,29 @@ make check -k -C tests ||:
* Mon Feb 15 2016 Helio Chissini de Castro <helio@kde.org> - 5.6.0-0.9
- Update RC release
* Tue Feb 02 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.8.beta3
* Tue Feb 02 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.8.beta
- build with -fno-delete-null-pointer-checks to workaround gcc6-related runtime crashes (#1303643)
* Thu Jan 28 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.7.beta3
* Thu Jan 28 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.7.beta
- backport fix for older compilers (aka rhel6)
* Sun Jan 17 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.6.beta3
* Sun Jan 17 2016 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.6.beta
- use %%license
* Mon Dec 21 2015 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.5.beta3
- fix Source URL, Release: 1%%{?dist}
* Mon Dec 21 2015 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.5.beta
- fix Source URL, Release: tag
* Mon Dec 21 2015 Helio Chissini de Castro <helio@kde.org> - 5.6.0-0.4
- Update to final beta3 release
- Update to final beta release
* Thu Dec 10 2015 Helio Chissini de Castro <helio@kde.org> - 5.6.0-0.3
- Official beta3 release
- Official beta release
* Sun Dec 06 2015 Rex Dieter <rdieter@fedoraproject.org> 5.6.0-0.2
- de-bootstrap
* Tue Nov 03 2015 Helio Chissini de Castro <helio@kde.org> - 5.6.0-0.1
- Start to implement 5.6.0 beta3, bootstrap
- Start to implement 5.6.0 beta, bootstrap
* Sat Oct 24 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.1-3
- workaround QQuickShaderEffectSource::updatePaintNode deadlock (#1237269, kde#348385)
@ -480,11 +424,11 @@ make check -k -C tests ||:
* Fri Nov 28 2014 Rex Dieter <rdieter@fedoraproject.org> 5.4.0-0.3.rc
- 5.4.0-rc
* Mon Nov 03 2014 Rex Dieter <rdieter@fedoraproject.org> 5.4.0-0.2.beta3
* Mon Nov 03 2014 Rex Dieter <rdieter@fedoraproject.org> 5.4.0-0.2.beta
- use new %%qmake_qt5 macro
* Sat Oct 18 2014 Rex Dieter <rdieter@fedoraproject.org> - 5.4.0-0.1.beta3
- 5.4.0-beta3
* Sat Oct 18 2014 Rex Dieter <rdieter@fedoraproject.org> - 5.4.0-0.1.beta
- 5.4.0-beta
- %%ix84: drop sse2-optimized bits, need to rethink if/how to support it now
* Tue Sep 16 2014 Rex Dieter <rdieter@fedoraproject.org> 5.3.2-1
@ -536,14 +480,14 @@ make check -k -C tests ||:
* Mon Dec 02 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.10.rc1
- 5.2.0-rc1
* Mon Nov 25 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.5.beta31
* Mon Nov 25 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.5.beta1
- enable -doc only on primary archs (allow secondary bootstrap)
* Sat Nov 09 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.4.beta31
* Sat Nov 09 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.4.beta1
- rebuild (arm/qreal)
* Thu Oct 24 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.3.beta31
- 5.2.0-beta31
* Thu Oct 24 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.3.beta1
- 5.2.0-beta1
* Wed Oct 16 2013 Rex Dieter <rdieter@fedoraproject.org> 5.2.0-0.2.alpha
- bootstrap ppc

View File

@ -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;

66
qtdeclarative-c++11.patch Normal file
View File

@ -0,0 +1,66 @@
From 187a5b0c6e74e0109e4ec257104428a3c87fb52f Mon Sep 17 00:00:00 2001
From: Marco Benelli <marco.benelli@theqtcompany.com>
Date: Wed, 27 Jan 2016 09:18:02 +0100
Subject: [PATCH] qmlimportscanner: do not use local predicates.
Some (?) pre C++11 compilers are not able to resolve template arguments
for std::find_if when the predicates are local to the function.
Change-Id: I1e5c4adc3409bd32081ddedff158ab9dcc2eaa9a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
---
tools/qmlimportscanner/main.cpp | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp
index b16253a..189459f 100644
--- a/tools/qmlimportscanner/main.cpp
+++ b/tools/qmlimportscanner/main.cpp
@@ -344,6 +344,24 @@ QVariantList mergeImports(const QVariantList &a, const QVariantList &b)
return merged;
}
+// Predicates needed by findQmlImportsInDirectory.
+
+struct isMetainfo {
+ bool operator() (const QFileInfo &x) const {
+ return x.suffix() == QLatin1String("metainfo");
+ }
+};
+
+struct pathStartsWith {
+ pathStartsWith(const QString &path) : _path(path) {}
+ bool operator() (const QString &x) const {
+ return _path.startsWith(x);
+ }
+ const QString _path;
+};
+
+
+
// Scan all qml files in directory for import statements
QVariantList findQmlImportsInDirectory(const QString &qmlDir)
{
@@ -353,19 +371,6 @@ QVariantList findQmlImportsInDirectory(const QString &qmlDir)
QDirIterator iterator(qmlDir, QDir::AllDirs | QDir::NoDotDot, QDirIterator::Subdirectories);
QStringList blacklist;
- struct isMetainfo {
- bool operator() (const QFileInfo &x) const {
- return x.suffix() == QLatin1String("metainfo");
- }
- };
- struct pathStartsWith {
- pathStartsWith(const QString &path) : _path(path) {}
- bool operator() (const QString &x) const {
- return _path.startsWith(x);
- }
- const QString _path;
- };
-
while (iterator.hasNext()) {
iterator.next();
--
1.9.3

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,39 @@
diff -up qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/jsruntime.pri.no_sse2 qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/jsruntime.pri
--- qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/jsruntime.pri.no_sse2 2015-06-29 15:12:38.000000000 -0500
+++ qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/jsruntime.pri 2015-07-16 08:49:00.280760307 -0500
@@ -111,6 +111,11 @@ SOURCES += \
$$PWD/qv4string.cpp \
$$PWD/qv4value.cpp
+linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 {
+ QMAKE_CFLAGS += -msse2 -mfpmath=sse
+ QMAKE_CXXFLAGS += -msse2 -mfpmath=sse
+}
+
valgrind {
DEFINES += V4_USE_VALGRIND
}
diff -up qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/qv4global_p.h.no_sse2 qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/qv4global_p.h
--- qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/qv4global_p.h.no_sse2 2015-06-29 15:12:38.000000000 -0500
+++ qtdeclarative-opensource-src-5.5.0/src/qml/jsruntime/qv4global_p.h 2015-07-16 08:49:00.280760307 -0500
@@ -74,7 +74,7 @@ inline double trunc(double d) { return d
//
// NOTE: This should match the logic in qv4targetplatform_p.h!
-#if defined(Q_PROCESSOR_X86) && !defined(__ILP32__) \
+#if defined(Q_PROCESSOR_X86) && !defined(__ILP32__) && defined(__SSE2__) \
&& (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
#define V4_ENABLE_JIT
#elif defined(Q_PROCESSOR_X86_64) && !defined(__ILP32__) \
diff -up qtdeclarative-opensource-src-5.5.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 qtdeclarative-opensource-src-5.5.0/src/qml/qml/v8/qv8engine.cpp
--- qtdeclarative-opensource-src-5.5.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 2015-06-29 15:12:39.000000000 -0500
+++ qtdeclarative-opensource-src-5.5.0/src/qml/qml/v8/qv8engine.cpp 2015-07-16 08:49:00.280760307 -0500
@@ -123,7 +123,7 @@ QV8Engine::QV8Engine(QJSEngine* qq)
, m_xmlHttpRequestData(0)
, m_listModelData(0)
{
-#ifdef Q_PROCESSOR_X86_32
+#if defined(Q_PROCESSOR_X86_32) && defined(__SSE2__)
if (!qCpuHasFeature(SSE2)) {
qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer");
}

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,23 +0,0 @@
/* qvglobal_p.h */
/* This file is here to prevent a file conflict on multiarch systems. A
* conflict will occur because qconfig.h has arch-specific definitions.
*
* DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */
#ifndef MULTILIB_QV4GLOBAL_H
#define MULTILIB_QV4GLOBAL_H
#ifndef __WORDSIZE
#include <bits/wordsize.h>
#endif
#if __WORDSIZE == 32
#include <private/qv4global_p-32.h>
#elif __WORDSIZE == 64
#include <private/qv4global_p-64.h>
#else
#error "unexpected value for __WORDSIZE macro"
#endif
#endif

View File

@ -1 +1 @@
SHA512 (qtdeclarative-everywhere-src-5.12.4.tar.xz) = 953b0dac76b73a7a21b393ab88718da12d77dfc688dc07c55c96ea1658bc14acd9097bef60df4a95d2923d3fb1e02b46499c032aa53844d4fd344b0037514671
a485e5754ad93459674acf72e72576f0 qtdeclarative-opensource-src-5.6.2.tar.xz