#
# 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 wkhtml # WKHTMLTOPDF patch (affects QtGui ABI)
%bcond_with openvg # OpenVG support
# -- databases
+%bcond_without ibase # ibase (InterBase/Firebird) plugin
%bcond_without mysql # MySQL plugin
+%bcond_with oci # OCI (Oracle) support
%bcond_without odbc # unixODBC plugin
%bcond_without pgsql # PostgreSQL plugin
%bcond_without sqlite3 # SQLite3 plugin
%bcond_without sqlite # SQLite2 plugin
-%bcond_without ibase # ibase (InterBase/Firebird) plugin
# -- SIMD CPU instructions
%bcond_with mmx # use MMX instructions
%bcond_with 3dnow # use 3Dnow instructions
%endif
# any SQL
%define _withsql 1
-%{!?with_sqlite3:%{!?with_sqlite:%{!?with_ibase:%{!?with_mysql:%{!?with_pgsql:%{!?with_odbc:%undefine _withsql}}}}}}
+%{!?with_sqlite3:%{!?with_sqlite:%{!?with_ibase:%{!?with_mysql:%{!?with_pgsql:%{!?with_odbc:%{!?with_oci:%undefine _withsql}}}}}}}
-%define icu_abi 54
+%define icu_abi 67
%define next_icu_abi %(echo $((%{icu_abi} + 1)))
Summary: The Qt GUI application framework
Summary(pl.UTF-8): Biblioteka Qt do tworzenia GUI
Summary(pt_BR.UTF-8): Estrutura para rodar aplicações GUI Qt
Name: qt4
-Version: 4.8.6
-Release: 7
+Version: 4.8.7
+Release: 28
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
-# Source0-md5: 2edbe4d6c2eff33ef91732602f3518eb
+# Source0-md5: d990ee66bf7ab0c785589776f35ba6ad
Source2: %{name}-qtconfig.desktop
Source3: %{name}-designer.desktop
Source4: %{name}-assistant.desktop
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: 0010-QDbus-Fix-a-b-comparison.patch
-Patch21: 0023-Don-t-crash-on-broken-GIF-images.patch
-Patch22: 0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch
-Patch23: 0030-Memory-and-file-descriptor-leak-in-QFontCache.patch
-Patch24: 0034-Fix-raster-graphics-on-X11-RGB30.patch
-Patch25: 0065-Fix-QPainter-drawPolyline-painting-errors-with-cosme.patch
-Patch26: 0072-Fix-font-cache-check-in-QFontEngineFT-recalcAdvances.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
URL: http://qt-project.org/
%{?with_ibase:BuildRequires: Firebird-devel}
%{?with_openvg:BuildRequires: Mesa-libOpenVG-devel}
BuildRequires: libstdc++-devel
%{?with_mysql:BuildRequires: mysql-devel}
%{?with_nas:BuildRequires: nas-devel}
+%{?with_oci:BuildRequires: oracle-instantclient-devel}
BuildRequires: pkgconfig
%{?with_pgsql:BuildRequires: postgresql-backend-devel}
%{?with_pgsql:BuildRequires: postgresql-devel}
# 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.
%description -n QtSql-mysql -l pt_BR.UTF-8
Plugin de suporte a MySQL para Qt.
+%package -n QtSql-oci
+Summary: Qt Sql driver for Oracle database (using OCI interface)
+Summary(pl.UTF-8): Sterownik Qt Sql dla bazy danych Oracle (wykorzystujący interfejs OCI)
+Group: Libraries
+Requires: QtSql = %{version}-%{release}
+Provides: QtSql-backend = %{version}-%{release}
+
+%description -n QtSql-oci
+Qt Sql driver for Oracle database (using OCI interface).
+
+%description -n QtSql-oci -l pl.UTF-8
+Sterownik Qt Sql dla bazy danych Oracle (wykorzystujący interfejs
+OCI).
+
%package -n QtSql-odbc
Summary: Database plugin for ODBC Qt support
Summary(pl.UTF-8): Wtyczka ODBC do Qt
%patch14 -p1
%patch15 -p1
%patch16 -p1
+%patch17 -p1
-%patch17 -p0
-%patch18 -p0
+%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -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
%{__sed} -i -e 's,usr/X11R6/,usr/g,' mkspecs/linux-g++-64/qmake.conf \
mkspecs/common/linux.conf
' mkspecs/common/linux.conf
# 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_nas:-system-nas-sound} \
%{?debug:-debug} \
%{!?debug:-release} \
+ -%{!?with_openvg:no-}openvg \
-qt3support \
-fontconfig \
-largefile \
%if %{with static_libs}
OPT=" \
+ -%{!?with_ibase:no}%{?with_ibase:qt}-sql-ibase \
-%{!?with_mysql:no}%{?with_mysql:qt}-sql-mysql \
-%{!?with_odbc:no}%{?with_odbc:qt}-sql-odbc \
+ -%{!?with_oci:no}%{?with_oci:qt}-sql-oci \
-%{!?with_pgsql:no}%{?with_pgsql:qt}-sql-psql \
-%{!?with_sqlite3:no}%{?with_sqlite3:qt}-sql-sqlite \
-%{!?with_sqlite:no}%{?with_sqlite:qt}-sql-sqlite2 \
- -%{!?with_ibase:no}%{?with_ibase:qt}-sql-ibase \
-static"
./configure $COMMONOPT $OPT
##################################
OPT=" \
+ -%{!?with_ibase:no}%{?with_ibase:plugin}-sql-ibase \
-%{!?with_mysql:no}%{?with_mysql:plugin}-sql-mysql \
-%{!?with_odbc:no}%{?with_odbc:plugin}-sql-odbc \
+ -%{!?with_oci:no}%{?with_oci:plugin}-sql-oci \
-%{!?with_pgsql:no}%{?with_pgsql:plugin}-sql-psql \
-%{!?with_sqlite3:no}%{?with_sqlite3:plugin}-sql-sqlite \
-%{!?with_sqlite:no}%{?with_sqlite:plugin}-sql-sqlite2 \
- -%{!?with_ibase:no}%{?with_ibase:plugin}-sql-ibase \
-shared"
./configure $COMMONOPT $OPT
install -d $RPM_BUILD_ROOT%{_qtdir}/plugins/{crypto,network}
install -d $RPM_BUILD_ROOT%{_qtdir}/imports/org
+# for QtSolutions (qtlockedfile, qtsingleapplication, etc)
+install -d $RPM_BUILD_ROOT%{_includedir}/qt4/QtSolutions
+
echo '#QT_GRAPHICSSYSTEM=raster' > $RPM_BUILD_ROOT/etc/env.d/QT_GRAPHICSSYSTEM
%{__make} install \
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
%lang(da) %{_localedir}/da/LC_MESSAGES/qt4.qm
%lang(de) %{_localedir}/de/LC_MESSAGES/qt4.qm
%lang(es) %{_localedir}/es/LC_MESSAGES/qt4.qm
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4.qm
%lang(fa) %{_localedir}/fa/LC_MESSAGES/qt4.qm
%lang(fr) %{_localedir}/fr/LC_MESSAGES/qt4.qm
%lang(gl) %{_localedir}/gl/LC_MESSAGES/qt4.qm
%lang(cs) %{_localedir}/cs/LC_MESSAGES/qt4-qt_help.qm
%lang(da) %{_localedir}/da/LC_MESSAGES/qt4-qt_help.qm
%lang(de) %{_localedir}/de/LC_MESSAGES/qt4-qt_help.qm
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-qt_help.qm
%lang(fr) %{_localedir}/fr/LC_MESSAGES/qt4-qt_help.qm
%lang(gl) %{_localedir}/gl/LC_MESSAGES/qt4-qt_help.qm
%lang(hu) %{_localedir}/hu/LC_MESSAGES/qt4-qt_help.qm
%attr(755,root,root) %{_libdir}/libQtScript.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libQtScript.so.4
%dir %{_qtdir}/plugins/script
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-qtscript.qm
%files -n QtScriptTools
%defattr(644,root,root,755)
%attr(755,root,root) %ghost %{_libdir}/libQtSql.so.4
%dir %{_qtdir}/plugins/sqldrivers
+%if %{with ibase}
+%files -n QtSql-ibase
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlibase.so
+%endif
+
%if %{with mysql}
%files -n QtSql-mysql
%defattr(644,root,root,755)
%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlmysql.so
%endif
+%if %{with oci}
+%files -n QtSql-oci
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqloci.so
+%endif
+
+%if %{with odbc}
+%files -n QtSql-odbc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlodbc.so
+%endif
+
%if %{with pgsql}
%files -n QtSql-pgsql
%defattr(644,root,root,755)
%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlite.so
%endif
-%if %{with ibase}
-%files -n QtSql-ibase
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlibase.so
-%endif
-
-%if %{with odbc}
-%files -n QtSql-odbc
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqlodbc.so
-%endif
-
%files -n QtSql-tds
%defattr(644,root,root,755)
%attr(755,root,root) %{_qtdir}/plugins/sqldrivers/libqsqltds.so
%lang(cs) %{_localedir}/cs/LC_MESSAGES/qt4-assistant.qm
%lang(da) %{_localedir}/da/LC_MESSAGES/qt4-assistant.qm
%lang(de) %{_localedir}/de/LC_MESSAGES/qt4-assistant.qm
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-assistant.qm
%lang(fr) %{_localedir}/fr/LC_MESSAGES/qt4-assistant.qm
%lang(hu) %{_localedir}/hu/LC_MESSAGES/qt4-assistant.qm
%lang(ja) %{_localedir}/ja/LC_MESSAGES/qt4-assistant.qm
%attr(755,root,root) %{_qtdir}/bin/lupdate
%lang(cs) %{_localedir}/cs/LC_MESSAGES/qt4-linguist.qm
%lang(de) %{_localedir}/de/LC_MESSAGES/qt4-linguist.qm
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-linguist.qm
%lang(fr) %{_localedir}/fr/LC_MESSAGES/qt4-linguist.qm
+%lang(he) %{_localedir}/he/LC_MESSAGES/qt4-linguist.qm
%lang(hu) %{_localedir}/hu/LC_MESSAGES/qt4-linguist.qm
%lang(ja) %{_localedir}/ja/LC_MESSAGES/qt4-linguist.qm
%lang(ko) %{_localedir}/ko/LC_MESSAGES/qt4-linguist.qm
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qtconfig-qt4
%attr(755,root,root) %{_qtdir}/bin/qtconfig
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-qtconfig.qm
+%lang(he) %{_localedir}/he/LC_MESSAGES/qt4-qtconfig.qm
%lang(hu) %{_localedir}/hu/LC_MESSAGES/qt4-qtconfig.qm
%lang(ja) %{_localedir}/ja/LC_MESSAGES/qt4-qtconfig.qm
%lang(ko) %{_localedir}/ko/LC_MESSAGES/qt4-qtconfig.qm
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qvfb
%attr(755,root,root) %{_qtdir}/bin/qvfb
+%lang(eu) %{_localedir}/eu/LC_MESSAGES/qt4-qvfb.qm
%lang(hu) %{_localedir}/hu/LC_MESSAGES/qt4-qvfb.qm
%lang(ja) %{_localedir}/ja/LC_MESSAGES/qt4-qvfb.qm
%lang(ko) %{_localedir}/ko/LC_MESSAGES/qt4-qvfb.qm
%files -n QtCore-devel -f QtCore-devel.files
%defattr(644,root,root,755)
+%dir %{_includedir}/qt4/QtSolutions
%files -n QtDBus-devel -f QtDBus-devel.files
%defattr(644,root,root,755)