#
# TODO:
+# - fix moc failures, see e.g. https://bugzilla.redhat.com/show_bug.cgi?id=1396755
+# at least add some macros to QTBUG-22829 patch (BOOST_PREDEF_VERSION_NUMBER_H, _SYS_SYSMACROS_H_OUTER...)
# - more cleanups
# - check if translations are available
# - check Qt ui tool
%bcond_with sse42 # use SSE4.2 instructions (the same)
%bcond_with avx # use AVX instructions (future Intel x86 CPUs only)
-%ifnarch %{ix86} %{x8664} sparc sparcv9 alpha ppc
+%ifnarch %{ix86} %{x8664} x32 sparc sparcv9 alpha ppc
%undefine with_ibase
%endif
%ifarch athlon
%define with_3dnow 1
%endif
-%ifarch athlon pentium3 pentium4 %{x8664}
+%ifarch athlon pentium3 pentium4 %{x8664} x32
%define with_mmx 1
%endif
-%ifarch pentium3 pentium4 %{x8664}
+%ifarch pentium3 pentium4 %{x8664} x32
%define with_sse 1
%endif
-%ifarch pentium4 %{x8664}
+%ifarch pentium4 %{x8664} x32
%define with_sse2 1
%endif
# any SQL
%define _withsql 1
%{!?with_sqlite3:%{!?with_sqlite:%{!?with_ibase:%{!?with_mysql:%{!?with_pgsql:%{!?with_odbc:%{!?with_oci:%undefine _withsql}}}}}}}
-%define icu_abi 54
+%define icu_abi 69
%define next_icu_abi %(echo $((%{icu_abi} + 1)))
Summary: The Qt GUI application framework
Summary(pt_BR.UTF-8): Estrutura para rodar aplicações GUI Qt
Name: qt4
Version: 4.8.7
-Release: 1
+Release: 37
License: LGPL v2.1 or GPL v3.0
Group: X11/Libraries
Source0: http://download.qt-project.org/official_releases/qt/4.8/%{version}/qt-everywhere-opensource-src-%{version}.tar.gz
Patch9: qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch
Patch10: webkit-no_Werror.patch
Patch11: %{name}-wkhtml.patch
-Patch12: fix-crash-in-assistant.patch
-Patch13: improve-cups-support.patch
+Patch12: openssl.patch
+Patch13: qt-asm-volatile.patch
Patch14: x32.patch
# backported from Qt5 (essentially)
# http://bugzilla.redhat.com/702493
# https://bugreports.qt-project.org/browse/QTBUG-5545
Patch15: qt-everywhere-opensource-src-4.8.4-qgtkstyle_disable_gtk_theme_check.patch
Patch16: qt-everywhere-opensource-src-4.8.3-QTBUG-4862.patch
-Patch17: l-qclipboard_delay.patch
-Patch18: l-qclipboard_fix_recursive.patch
-Patch19: qtcore-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch
-Patch20: %{name}-oracle-instantclient.patch
-Patch27: moc-boost-workaround.patch
+Patch17: %{name}-oracle-instantclient.patch
+# from Debian
+Patch18: add-lxde-support.patch
+Patch19: Better-handling-of-invalid-font-tables.patch
+Patch20: xmlpatterns_stack_overflow_fix.diff
+Patch21: no_libicu_message.diff
+Patch22: add-mate-support.patch
+
+# from FC
+Patch28: qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch
+Patch29: qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch
+Patch30: qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch
+Patch31: qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch
+Patch32: qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch
+Patch33: qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch
+Patch34: qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch
+Patch35: qt-4.8-poll.patch
+Patch36: qt-cupsEnumDests.patch
+Patch37: qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch
+Patch38: qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch
+Patch39: qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch
+Patch40: qt-everywhere-opensource-src-4.8.6-QTBUG-22829.patch
+Patch41: qt-everywhere-opensource-src-4.8.7-alsa-1.1.patch
+Patch42: qt-everywhere-opensource-src-4.8.7-gcc6.patch
+Patch43: qt-everywhere-opensource-src-4.6.2-cups.patch
+Patch44: qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch
+Patch45: qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch
+Patch46: qt-everywhere-opensource-src-4.8.3-qdbusconnection_no_debug.patch
+Patch47: qt-everywhere-opensource-src-4.8.2--assistant-crash.patch
+Patch48: qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch
+Patch49: icu59.patch
+Patch50: mysql-link.patch
+Patch51: gcc9.patch
+Patch52: gcc9-qforeach.patch
+Patch53: cxx11.patch
+Patch54: gcc11.patch
+Patch55: qmap_inf_loop.patch
URL: http://qt-project.org/
%{?with_ibase:BuildRequires: Firebird-devel}
%{?with_openvg:BuildRequires: Mesa-libOpenVG-devel}
BuildRequires: freetype-devel >= 2.1.3
%{?with_pch:BuildRequires: gcc >= 5:4.0}
BuildRequires: glib2-devel >= 2.0.0
-BuildRequires: gstreamer0.10-plugins-base-devel
+%{!?with_system_phonon:BuildRequires: gstreamer0.10-plugins-base-devel}
%{?with_gtk:BuildRequires: gtk+2-devel >= 2:2.10}
# see dependency on libicu version below
BuildRequires: libicu-devel >= %{icu_abi}
%define _noautoreqdep libGL.so.1 libGLU.so.1
%define _noautostrip '.*_debug\\.so*'
-%define specflags -fno-strict-aliasing
+%define specflags -fno-strict-aliasing -Wno-deprecated
%define _qtdir %{_libdir}/qt4
# the rest for qnmbearer plugin
Requires: QtDBus = %{version}-%{release}
Requires: QtXml = %{version}-%{release}
+%requires_ge_to openssl openssl-devel
%description -n QtNetwork
Qt classes for network programming.
Summary(pl.UTF-8): Dokumentacja Qt w formacie HTML
Group: X11/Development/Libraries
Suggests: %{name}-assistant = %{version}-%{release}
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description doc
Qt documentation in HTML format.
%patch14 -p1
%patch15 -p1
%patch16 -p1
-%patch17 -p0
-%patch18 -p0
+%patch17 -p1
+
+%patch18 -p1
%patch19 -p1
%patch20 -p1
-
-%patch27 -p1
+%patch21 -p1
+%patch22 -p1
+
+%patch28 -p1
+%patch29 -p0
+%patch30 -p1
+%patch31 -p0
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
%{__sed} -i -e 's,usr/X11R6/,usr/g,' mkspecs/linux-g++-64/qmake.conf \
mkspecs/common/linux.conf
s|^QMAKE_STRIP.*=.*|QMAKE_STRIP =|;
' mkspecs/common/linux.conf
+# disable gstreamer-0.10 based multimedia
+%{__sed} -i -e 's/gstreamer-0.10/&-disabled/' src/3rdparty/webkit/Source/WebCore/features.pri
+
# disable webkit tests, broken build
-rm -r src/3rdparty/webkit/Source/WebKit/qt/tests
+%{__rm} -r src/3rdparty/webkit/Source/WebKit/qt/tests
%build
# pass OPTFLAGS to build qmake itself with optimization
%{!?with_sse41:-no-sse4.1} \
%{!?with_sse42:-no-sse4.2} \
%{!?with_avx:-no-avx} \
+ %{?with_system_phonon:-no-phonon} \
-qdbus \
-dbus-linked \
-reduce-relocations \
s|uic_location=.*|uic_location=%{_bindir}/uic-qt4|;
' $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
+# kill -std=XYZ, so qmake won't pass it over to other projects
+#%{__sed} -i -e s#^\(.*\) -std=[a-z0-9+]\+\( .*\|$\)#\1 \2#g' $RPM_BUILD_ROOT%{_datadir}/qt4/mkspecs/common/g++-base.conf
+
# libQtWebKit.la contains '-ljscore' and '-lwebcore', they come
# from src/3rdparty/webkit/{JavaScriptCore,WebCore}} but those libs aren't installed
%{__sed} -i -e "s,-lwebcore,,g;s,-ljscore,,g;" $RPM_BUILD_ROOT%{_libdir}/libQtWebKit.la
cd -
# multilib
-mv $RPM_BUILD_ROOT%{_qtdir}/bin/{qdbus,qdbusviewer} $RPM_BUILD_ROOT%{_bindir}
+%{__mv} $RPM_BUILD_ROOT%{_qtdir}/bin/{qdbus,qdbusviewer} $RPM_BUILD_ROOT%{_bindir}
ln -sf %{_bindir}/qdbus $RPM_BUILD_ROOT%{_qtdir}/bin/qdbus
ln -sf %{_bindir}/qdbusviewer $RPM_BUILD_ROOT%{_qtdir}/bin/qdbusviewer
mkdevfl QtXml
mkdevfl QtXmlPatterns
mkdevfl Qt3Support
-mkdevfl phonon
+%{!?with_system_phonon:mkdevfl phonon}
# without *.la *.pc etc.
mkdevfl QtDesigner || /bin/true
ifecho demos %{_examplesdir}/qt4-demos/$f
done
-%if %{with system_phonon}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libphonon.so* \
- $RPM_BUILD_ROOT%{_libdir}/libphonon.{la,prl} \
- $RPM_BUILD_ROOT%{_libdir}/qt4/plugins/phonon_backend/libphonon_gstreamer.so \
- $RPM_BUILD_ROOT%{_pkgconfigdir}/phonon.pc
-%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/qt4/phonon
-%if %{with static_libs}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libphonon.a
-%endif
-%endif
-
%clean
rm -rf $RPM_BUILD_ROOT