diff --git a/.gitignore b/.gitignore index 43857e2..4275c94 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/qtdeclarative-opensource-src-5.6.2.tar.xz +SOURCES/qtdeclarative-opensource-src-5.9.2.tar.xz diff --git a/.qt5-qtdeclarative.metadata b/.qt5-qtdeclarative.metadata index 8285da9..e8eafb6 100644 --- a/.qt5-qtdeclarative.metadata +++ b/.qt5-qtdeclarative.metadata @@ -1 +1 @@ -61771306a53b1bbeaa8956e0fa884d1b7c013961 SOURCES/qtdeclarative-opensource-src-5.6.2.tar.xz +8cbb0fd759a4a4ce95e6d38159543080cb83ff4d SOURCES/qtdeclarative-opensource-src-5.9.2.tar.xz diff --git a/SOURCES/Check-for-NULL-from-glGetString.patch b/SOURCES/Check-for-NULL-from-glGetString.patch deleted file mode 100644 index bc9f732..0000000 --- a/SOURCES/Check-for-NULL-from-glGetString.patch +++ /dev/null @@ -1,96 +0,0 @@ -From d4efd5ab810e92202efe672be29136324dd2a3f9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?D=C4=81vis=20Mos=C4=81ns?= -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(m_funcs->glGetString(GL_RENDERER)), -- "Mali-400 MP") == 0; -- set = true; -+ const char *renderer = reinterpret_cast(m_funcs->glGetString(GL_RENDERER)); -+ if (renderer) { -+ useWorkaround = qstrcmp(renderer, "Mali-400 MP") == 0; -+ set = true; -+ } - } - return useWorkaround; - } --- -1.9.3 - diff --git a/SOURCES/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch b/SOURCES/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch new file mode 100644 index 0000000..9c300aa --- /dev/null +++ b/SOURCES/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch @@ -0,0 +1,122 @@ +From 4950c366b12265f1ea390a6feb8dbbd0d850d206 Mon Sep 17 00:00:00 2001 +From: Guillem Jover +Date: Mon, 12 Oct 2015 01:45:37 +0200 +Subject: [PATCH v2] Do not make lack of SSE2 support on x86-32 fatal + +When an x86-32 CPU does not have SSE2 support (which is the case for +all AMD CPUs, and older Intel CPUs), fallback to use the interpreter, +otherwise use the JIT engine. + +Even then, make the lack of SSE2 support on x86-32 fatal when trying +to instantiate a JIT engine, which does require it. + +Refactor the required CPU support check into a new pair of privately +exported functions to avoid duplicating the logic, and do so in +functions instead of class members to avoid changing the class +signatures. + +Version: 5.7.x +Bug-Debian: https://bugs.debian.org/792594 +--- + src/qml/jit/qv4isel_masm.cpp | 2 ++ + src/qml/jit/qv4isel_masm_p.h | 18 ++++++++++++++++++ + src/qml/jsruntime/qv4engine.cpp | 1 + + src/qml/qml/v8/qv8engine.cpp | 7 ------- + tools/qmljs/qmljs.cpp | 7 +++---- + 5 files changed, 24 insertions(+), 11 deletions(-) + +--- a/src/qml/jit/qv4isel_masm.cpp ++++ b/src/qml/jit/qv4isel_masm.cpp +@@ -72,6 +72,8 @@ InstructionSelection::Inst + , compilationUnit(new CompilationUnit) + , qmlEngine(qmlEngine) + { ++ checkRequiredCpuSupport(); ++ + compilationUnit->codeRefs.resize(module->functions.size()); + module->unitFlags |= QV4::CompiledData::Unit::ContainsMachineCode; + } +--- a/src/qml/jit/qv4isel_masm_p.h ++++ b/src/qml/jit/qv4isel_masm_p.h +@@ -60,6 +60,7 @@ + + #include + #include ++#include + #include + #include + +@@ -72,6 +73,23 @@ QT_BEGIN_NAMESPACE + namespace QV4 { + namespace JIT { + ++Q_QML_PRIVATE_EXPORT inline bool hasRequiredCpuSupport() ++{ ++#ifdef Q_PROCESSOR_X86_32 ++ return qCpuHasFeature(SSE2); ++#else ++ return true; ++#endif ++} ++ ++Q_QML_PRIVATE_EXPORT inline void checkRequiredCpuSupport() ++{ ++#ifdef Q_PROCESSOR_X86_32 ++ if (!qCpuHasFeature(SSE2)) ++ qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer"); ++#endif ++} ++ + template > + class Q_QML_EXPORT InstructionSelection: + protected IR::IRDecoder, +--- a/src/qml/jsruntime/qv4engine.cpp ++++ b/src/qml/jsruntime/qv4engine.cpp +@@ -165,6 +165,7 @@ ExecutionEngine::ExecutionEngine(EvalISe + + #ifdef V4_ENABLE_JIT + static const bool forceMoth = !qEnvironmentVariableIsEmpty("QV4_FORCE_INTERPRETER") || ++ !JIT::hasRequiredCpuSupport() || + !OSAllocator::canAllocateExecutableMemory(); + if (forceMoth) { + factory = new Moth::ISelFactory; +--- a/src/qml/qml/v8/qv8engine.cpp ++++ b/src/qml/qml/v8/qv8engine.cpp +@@ -64,7 +64,6 @@ + #include + #include + #include +-#include + + #include + #include +@@ -129,12 +128,6 @@ QV8Engine::QV8Engine(QJSEngine* qq) + , m_xmlHttpRequestData(0) + , m_listModelData(0) + { +-#ifdef Q_PROCESSOR_X86_32 +- if (!qCpuHasFeature(SSE2)) { +- qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer"); +- } +-#endif +- + QML_MEMORY_SCOPE_STRING("QV8Engine::QV8Engine"); + qMetaTypeId(); + qMetaTypeId >(); +--- a/tools/qmljs/qmljs.cpp ++++ b/tools/qmljs/qmljs.cpp +@@ -92,11 +92,10 @@ int main(int argc, char *argv[]) + enum { + use_masm, + use_moth +- } mode; ++ } mode = use_moth; + #ifdef V4_ENABLE_JIT +- mode = use_masm; +-#else +- mode = use_moth; ++ if (QV4::JIT::hasRequiredCpuSupport()) ++ mode = use_masm; + #endif + + bool runAsQml = false; diff --git a/SOURCES/qtdeclarative-opensource-src-5.5.0-no_sse2.patch b/SOURCES/qtdeclarative-opensource-src-5.5.0-no_sse2.patch deleted file mode 100644 index c419395..0000000 --- a/SOURCES/qtdeclarative-opensource-src-5.5.0-no_sse2.patch +++ /dev/null @@ -1,39 +0,0 @@ -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"); - } diff --git a/SOURCES/qtdeclarative-opensource-src-5.9.0-no_sse2.patch b/SOURCES/qtdeclarative-opensource-src-5.9.0-no_sse2.patch new file mode 100644 index 0000000..cac744e --- /dev/null +++ b/SOURCES/qtdeclarative-opensource-src-5.9.0-no_sse2.patch @@ -0,0 +1,36 @@ +--- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/qv4global_p.h 2017-04-21 20:34:05.000000000 +0200 ++++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/qv4global_p.h.new 2017-05-06 09:23:00.894049064 +0200 +@@ -95,7 +95,7 @@ + // + // NOTE: This should match the logic in qv4targetplatform_p.h! + +-#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) \ ++#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) && 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) && (QT_POINTER_SIZE == 8) \ +--- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/jsruntime.pri 2017-04-21 20:34:05.000000000 +0200 ++++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/jsruntime.pri.new 2017-05-06 09:25:12.698437577 +0200 +@@ -115,6 +115,11 @@ + $$PWD/qv4value.cpp \ + $$PWD/qv4executableallocator.cpp + ++linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 { ++ QMAKE_CFLAGS += -msse2 -mfpmath=sse ++ QMAKE_CXXFLAGS += -msse2 -mfpmath=sse ++} ++ + valgrind { + DEFINES += V4_USE_VALGRIND + } +--- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/qml/v8/qv8engine.cpp 2017-04-21 20:34:05.000000000 +0200 ++++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/qml/v8/qv8engine.cpp.new 2017-05-06 09:27:19.373810971 +0200 +@@ -129,7 +129,7 @@ + , 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"); + } diff --git a/SOURCES/qtdeclarative-system_doubleconv.patch b/SOURCES/qtdeclarative-system_doubleconv.patch deleted file mode 100644 index b68cd57..0000000 --- a/SOURCES/qtdeclarative-system_doubleconv.patch +++ /dev/null @@ -1,22 +0,0 @@ -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 - --#include "../../3rdparty/double-conversion/double-conversion.h" -+#include - - #ifdef QV4_COUNT_RUNTIME_FUNCTIONS - # include diff --git a/SOURCES/qv4global_p-multilib.h b/SOURCES/qv4global_p-multilib.h new file mode 100644 index 0000000..09d61d6 --- /dev/null +++ b/SOURCES/qv4global_p-multilib.h @@ -0,0 +1,23 @@ +/* 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 +#endif + +#if __WORDSIZE == 32 +#include +#elif __WORDSIZE == 64 +#include +#else +#error "unexpected value for __WORDSIZE macro" +#endif + +#endif + diff --git a/SPECS/qt5-qtdeclarative.spec b/SPECS/qt5-qtdeclarative.spec index 28de045..a51b674 100644 --- a/SPECS/qt5-qtdeclarative.spec +++ b/SPECS/qt5-qtdeclarative.spec @@ -7,27 +7,38 @@ # global bootstrap 1 %if ! 0%{?bootstrap} -%ifarch %{arm} %{ix86} x86_64 %global docs 1 -%global tests 1 -%endif +%global tests 0 %endif +%if 0 +#ifarch %{ix86} %global nosse2_hack 1 +## TODO: +# * consider debian's approach of runtime detection instead: +# https://codereview.qt-project.org/#/c/127354/ +%endif + +# definition borrowed from qtbase +%global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9 Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} -Version: 5.6.2 +Version: 5.9.2 Release: 1%{?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/official_releases/qt/5.6/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz +Source0: http://download.qt.io/official_releases/qt/5.9/%{version}/submodules/%{qt_module}-opensource-src-%{version}.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 +Patch1: qtdeclarative-opensource-src-5.9.0-no_sse2.patch # workaround for possible deadlock condition in QQuickShaderEffectSource # https://bugzilla.redhat.com/show_bug.cgi?id=1237269 @@ -37,18 +48,15 @@ Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch ## upstream patches ## upstreamable patches -# use system double-conversation -%if 0%{?fedora} -%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 -## upstream patches under review -# Check-for-NULL-from-glGetStrin -Patch500: Check-for-NULL-from-glGetString.patch +# https://codereview.qt-project.org/#/c/127354/ +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792594 +Patch202: http://sources.debian.net/data/main/q/qtdeclarative-opensource-src/5.9.0~beta3-2/debian/patches/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch + +%global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ Obsoletes: qt5-qtjsbackend < 5.2.0 @@ -93,7 +101,8 @@ License: GFDL Requires: %{name} = %{version}-%{release} BuildRequires: qt5-qdoc BuildRequires: qt5-qhelpgenerator -BuildArch: noarch +# FTBS: same problem as qtbase +# BuildArch: noarch %description doc %{summary}. %endif @@ -111,24 +120,11 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %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 +%patch202 -p1 -b .no_sse2_non_fatal %build -mkdir %{_target_platform} -pushd %{_target_platform} -%{qmake_qt5} .. -popd - -make %{?_smp_mflags} -C %{_target_platform} - %if 0%{?nosse2_hack} # build libQt5Qml with no_sse2 mkdir -p %{_target_platform}-no_sse2 @@ -139,13 +135,17 @@ make %{?_smp_mflags} -C src/qml popd %endif +# no shadow builds until fixed: https://bugreports.qt.io/browse/QTBUG-37417 +%{qmake_qt5} + %if 0%{?docs} -make %{?_smp_mflags} docs -C %{_target_platform} +make %{?_smp_mflags} docs %endif +make %{?_smp_mflags} %install -make install INSTALL_ROOT=%{buildroot} -C %{_target_platform} +make install INSTALL_ROOT=%{buildroot} %if 0%{?nosse2_hack} mkdir -p %{buildroot}%{_qt5_libdir}/sse2 @@ -154,7 +154,14 @@ make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-no_sse2/src/qml %endif %if 0%{?docs} -make install_docs INSTALL_ROOT=%{buildroot} -C %{_target_platform} +make install_docs INSTALL_ROOT=%{buildroot} +%endif + +%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 %endif # hardlink files to %{_bindir}, add -qt5 postfix to not conflict @@ -184,40 +191,31 @@ 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" \ - -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 + 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} 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} +make sub-tests-all %{?_smp_mflags} xvfb-run -a \ dbus-launch --exit-with-session \ time \ -make check -k -C %{_target_platform}/tests ||: +make check -k -C tests ||: %endif + %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -%{!?_licensedir:%global license %%doc} -%license LICENSE.LGPL* LGPL_EXCEPTION.txt +%license LICENSE.LGPL* %{_qt5_libdir}/libQt5Qml.so.5* %if 0%{?nosse2_hack} %{_qt5_libdir}/sse2/libQt5Qml.so.5* @@ -228,8 +226,6 @@ make check -k -C %{_target_platform}/tests ||: %{_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* @@ -243,10 +239,17 @@ make check -k -C %{_target_platform}/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%{?docs} %files doc @@ -255,13 +258,25 @@ make check -k -C %{_target_platform}/tests ||: %{_qt5_docdir}/qtqml/ %{_qt5_docdir}/qtquick.qch %{_qt5_docdir}/qtquick/ -%endif %files examples %{_qt5_examplesdir}/ +%endif %changelog +* Fri Oct 06 2017 Jan Grulich - 5.9.2-1 +- Update to 5.9.2 + Resolves: bz#1482778 + +* Mon Sep 04 2017 Jan Grulich - 5.9.1-2 +- Enable documentation + Resolves: bz#1482778 + +* Mon Aug 21 2017 Jan Grulich - 5.9.1-1 +- Update to 5.9.1 + Resolves: bz#1482778 + * Wed Jan 11 2017 Jan Grulich - 5.6.2-1 - Update to 5.6.2 Resolves: bz#1384817