%global qt_module qtdeclarative # 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 %if ! 0%{?bootstrap} %ifarch %{arm} %{ix86} x86_64 %define docs 1 %endif %endif Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} Version: 5.2.0 Release: 6%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions Url: http://qt-project.org/ %if 0%{?pre:1} Source0: http://download.qt-project.org/development_releases/qt/5.2/%{version}-%{pre}/submodules/%{qt_module}-opensource-src-%{version}-%{pre}.tar.xz %else Source0: http://download.qt-project.org/official_releases/qt/5.2/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz %endif # 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.2.0-no_sse2.patch # two upstream/upstream fixes from https://code.google.com/p/double-conversion/issues/detail?id=33 # Qt uses old version of double-conversion code Patch2: 0001-Add-ARM-64-support.patch Patch3: 0002-Fix-build-on-ARMv8-64bit.patch Obsoletes: qt5-qtjsbackend < 5.2.0 BuildRequires: qt5-qtbase-devel >= %{version} %if ! 0%{?bootstrap} BuildRequires: pkgconfig(Qt5XmlPatterns) %endif BuildRequires: python %{?_qt5_version:Requires: qt5-qtbase%{?_isa} >= %{_qt5_version}} %description %{summary} %package devel Summary: Development files for %{name} Obsoletes: qt5-qtjsbackend-devel < 5.2.0 Requires: %{name}%{?_isa} = %{version}-%{release} Requires: qt5-qtbase-devel%{?_isa} %description devel %{summary}. %package static Summary: Static library files for %{name} Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static %{summary}. %if 0%{?docs} %package doc Summary: API documentation for %{name} Requires: %{name} = %{version}-%{release} # for qhelpgenerator BuildRequires: qt5-qttools-devel BuildArch: noarch %description doc %{summary}. %endif %package examples Summary: Programming examples for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description examples %{summary}. %prep %setup -q -n %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}} %patch1 -p1 -b .no_sse2 %patch2 -p1 -b .0001 %patch3 -p1 -b .0002 %build mkdir -p %{_target_platform} pushd %{_target_platform} %{_qt5_qmake} .. popd make %{?_smp_mflags} -C %{_target_platform} %ifarch %{ix86} # build libQt5Qml with no_sse2 mkdir -p %{_target_platform}-no_sse2 pushd %{_target_platform}-no_sse2 %{_qt5_qmake} -config no_sse2 .. make sub-src-clean make %{?_smp_mflags} -C src/qml popd %endif %if 0%{?docs} make %{?_smp_mflags} docs -C %{_target_platform} %endif %install make install INSTALL_ROOT=%{buildroot} -C %{_target_platform} %ifarch %{ix86} 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} -C %{_target_platform} %endif # hardlink files to %{_bindir}, add -qt5 postfix to not conflict mkdir %{buildroot}%{_bindir} pushd %{buildroot}%{_qt5_bindir} for i in * ; do case "${i}" in qmlplugindump|qmlprofiler) ln -v ${i} %{buildroot}%{_bindir}/${i}-qt5 ln -sv ${i} ${i}-qt5 ;; *) ln -v ${i} %{buildroot}%{_bindir}/${i} ;; esac done popd ## .prl/.la file love # 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} if [ -f "$(basename ${prl_file} .prl).so" ]; then rm -fv "$(basename ${prl_file} .prl).la" sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file} fi done popd %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %doc LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt %doc dist/changes* %{_qt5_libdir}/libQt5Qml.so.5* %ifarch %{ix86} %{_qt5_libdir}/sse2/libQt5Qml.so.5* %endif %{_qt5_libdir}/libQt5Quick.so.5* %{_qt5_libdir}/libQt5QuickParticles.so.5* %{_qt5_libdir}/libQt5QuickTest.so.5* %{_qt5_plugindir}/accessible/libqtaccessiblequick.so %{_qt5_plugindir}/qmltooling/ %{_qt5_archdatadir}/qml/ %files devel %{_bindir}/qml* %{_qt5_bindir}/qml* %{_qt5_headerdir}/Qt*/ %{_qt5_libdir}/libQt5Qml.so %{_qt5_libdir}/libQt5Qml.prl %{_qt5_libdir}/libQt5Quick*.so %{_qt5_libdir}/libQt5Quick*.prl %{_qt5_libdir}/cmake/Qt5*/ %{_qt5_libdir}/pkgconfig/Qt5*.pc %{_qt5_archdatadir}/mkspecs/modules/*.pri %files static %{_qt5_libdir}/libQt5QmlDevTools.*a %{_qt5_libdir}/libQt5QmlDevTools.prl %if 0%{?docs} %files doc %{_qt5_docdir}/qtqml.qch %{_qt5_docdir}/qtqml/ %{_qt5_docdir}/qtquick.qch %{_qt5_docdir}/qtquick/ %{_qt5_docdir}/qtquickdialogs.qch %{_qt5_docdir}/qtquickdialogs/ %endif %if 0%{?_qt5_examplesdir:1} %files examples %{_qt5_examplesdir}/ %endif %changelog * Sun Feb 02 2014 Marcin Juszkiewicz 5.2.0-6 - Add AArch64 support (RHBUG: 1040452, QTBUG-35528) * Mon Jan 27 2014 Rex Dieter 5.2.0-5 - build -examples only if supported * Sun Jan 26 2014 Rex Dieter 5.2.0-4 - -examples subpkg * Tue Jan 14 2014 Rex Dieter 5.2.0-3 - epel7 bootstrapped * Mon Jan 06 2014 Rex Dieter 5.2.0-2 - BR: qt5-qtxmlpatterns-devel (#1048558) * Thu Dec 12 2013 Rex Dieter 5.2.0-1 - 5.2.0 * Tue Dec 10 2013 Rex Dieter - 5.2.0-0.12.rc1 - support out-of-src-tree builds - %%ix86: install sse2/jit version to %%_qt5_libdir/sse2/ * Thu Dec 05 2013 Rex Dieter 5.2.0-0.11.rc1 - %%ix86: cannot assume sse2 (and related support) or the JIT that requires it... disable. * Mon Dec 02 2013 Rex Dieter 5.2.0-0.10.rc1 - 5.2.0-rc1 * Mon Nov 25 2013 Rex Dieter 5.2.0-0.5.beta1 - enable -doc only on primary archs (allow secondary bootstrap) * Sat Nov 09 2013 Rex Dieter 5.2.0-0.4.beta1 - rebuild (arm/qreal) * Thu Oct 24 2013 Rex Dieter 5.2.0-0.3.beta1 - 5.2.0-beta1 * Wed Oct 16 2013 Rex Dieter 5.2.0-0.2.alpha - bootstrap ppc * Tue Oct 01 2013 Rex Dieter 5.2.0-0.1.alpha - 5.2.0-alpha - Obsoletes: qt5-qtjsbackend - -doc subpkg * Wed Aug 28 2013 Rex Dieter 5.1.1-1 - 5.1.1 * Tue Aug 20 2013 Rex Dieter 5.0.2-4 - qt5-qtjsbackend only supports ix86, x86_64 and arm * Tue May 14 2013 Rex Dieter 5.0.2-3 - fix qmlprofiler conflict with qt-creator * Fri Apr 12 2013 Rex Dieter 5.0.2-2 - fix qmlplugindump conflict with qt4-devel - include license files, dist/changes* * Thu Apr 11 2013 Rex Dieter 5.0.2-1 - 5.0.2 * Sat Feb 23 2013 Rex Dieter 5.0.1-1 - first try