diff --git a/.gitignore b/.gitignore index fd0c8d8..f337c05 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /qtdeclarative-everywhere-src-5.11.3.tar.xz +/qtdeclarative-everywhere-src-5.12.1.tar.xz diff --git a/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch b/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch deleted file mode 100644 index 74c571b..0000000 --- a/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch +++ /dev/null @@ -1,75 +0,0 @@ -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/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/jsruntime/qv4engine.cpp -+++ b/src/qml/jsruntime/qv4engine.cpp -@@ -160,6 +160,7 @@ - - #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 @@ - , 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 -@@ -90,11 +90,10 @@ - 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/qt5-qtdeclarative.spec b/qt5-qtdeclarative.spec index 491b69c..0735975 100644 --- a/qt5-qtdeclarative.spec +++ b/qt5-qtdeclarative.spec @@ -1,21 +1,14 @@ %global qt_module qtdeclarative -%if 0%{?fedora} < 29 -%ifarch %{ix86} -%global nosse2_hack 1 -## TODO: -# * consider debian's approach of runtime detection instead, -# w hen/if their patch is rebased for 5.11.x -%endif -%endif - # definition borrowed from qtbase %global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9 +%global bootstrap 1 + Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} -Version: 5.11.3 -Release: 2%{?dist} +Version: 5.12.1 +Release: 1%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -27,19 +20,10 @@ Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submod # 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 -# inspired by https://build.opensuse.org/package/view_file/KDE:Unstable:Qt/libqt5-qtdeclarative/sse2_nojit.patch -Patch1: qtdeclarative-opensource-src-5.11.0-no_sse2.patch - ## upstream patches ## upstreamable patches -# https://codereview.qt-project.org/#/c/127354/ -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792594 -#Patch202: https://sources.debian.org/data/main/q/qtdeclarative-opensource-src/5.10.1-4/debian/patches/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch - # filter qml provides %global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ @@ -51,11 +35,17 @@ BuildRequires: qt5-rpm-macros >= %{version} BuildRequires: qt5-qtbase-devel >= %{version} BuildRequires: qt5-qtbase-private-devel %{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} -BuildRequires: qt5-qtxmlpatterns-devel >= %{version} # recommended workaround from: # https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package +# TODO: fixme to explicitly use python2 instead -- rex BuildRequires: /usr/bin/python +%if 0%{?bootstrap} +Obsoletes: %{name}-examples < %{version}-%{release} +%else +%global no_examples CONFIG-=compile_examples +%endif + %if 0%{?tests} BuildRequires: dbus-x11 BuildRequires: mesa-dri-drivers @@ -90,26 +80,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %prep -%setup -q -n %{qt_module}-everywhere-src-%{version} -%if 0%{?nosse2_hack} -%patch1 -p1 -b .no_sse2 -%endif - -## FIXME/REBASE -#patch202 -p1 -b .no_sse2_non_fatal +%autosetup -n %{qt_module}-everywhere-src-%{version} %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_build -C src/qml -popd -%endif - # no shadow builds until fixed: https://bugreports.qt.io/browse/QTBUG-37417 %qmake_qt5 @@ -119,12 +93,6 @@ popd %install %make_install INSTALL_ROOT=%{buildroot} -%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 - %ifarch %{multilib_archs} # multilib: qv4global_p.h mv %{buildroot}%{_qt5_headerdir}/QtQml/%{version}/QtQml/private/qv4global_p.h \ @@ -184,12 +152,10 @@ make check -k -C tests ||: %files %license LICENSE.LGPL* %{_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/ @@ -218,11 +184,18 @@ make check -k -C tests ||: %{_qt5_libdir}/libQt5QmlDebug.a %{_qt5_libdir}/libQt5QmlDebug.prl +%if ! 0%{?no_examples:1} %files examples %{_qt5_examplesdir}/ +%endif %changelog +* Mon Feb 04 2019 Rex Dieter - 5.12.1-1 +- 5.12.1 +- drop remants of sse2 hack support +- add bootstrap support (examples) + * Sat Feb 02 2019 Fedora Release Engineering - 5.11.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/qtdeclarative-opensource-src-5.11.0-no_sse2.patch b/qtdeclarative-opensource-src-5.11.0-no_sse2.patch deleted file mode 100644 index c050bff..0000000 --- a/qtdeclarative-opensource-src-5.11.0-no_sse2.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri ---- qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri.no_sse2 2018-04-30 06:54:03.000000000 -0500 -+++ qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri 2018-05-24 16:15:51.151738531 -0500 -@@ -115,6 +115,11 @@ SOURCES += \ - $$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 - } -diff -up qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h ---- qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h.no_sse2 2018-04-30 06:54:03.000000000 -0500 -+++ qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h 2018-05-24 20:23:38.642642420 -0500 -@@ -88,7 +88,7 @@ inline double trunc(double d) { return d - // - // 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) \ -diff -up qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp ---- qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 2018-05-24 16:15:51.152738550 -0500 -+++ qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp 2018-05-24 20:21:01.273574503 -0500 -@@ -131,7 +131,7 @@ QV8Engine::QV8Engine(QJSEngine *qq, QV4: - { - #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"); -+ qDebug("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer, processors missing the extension are NOT supported to run QML2 code!"); - } - #endif - diff --git a/sources b/sources index 07efbb7..d57e144 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qtdeclarative-everywhere-src-5.11.3.tar.xz) = 07d440b10ba2fbd700a191791cb6991fb9ce72c78787340e7f564bdb2bef24b035e15fe2aecd36d58f8794e56bd0aa35d28b350a73707e27748e54d46609e1a0 +SHA512 (qtdeclarative-everywhere-src-5.12.1.tar.xz) = e06032da5c1c151200215f55728b9ce0fac299076f0ca3150143525a56bcce15eb72f6aa982b439e3920d1cd7a30468b3f0913f135d644ecda277d763fb5e1b5