Compare commits

...

26 Commits
master ... f23

Author SHA1 Message Date
Rex Dieter 9219112d74 Merge branch 'f24' into f23 2016-11-21 08:41:20 -06:00
Rex Dieter edeff1b640 Revert "+qt5-srpm-macros"
This reverts commit 8d54bf0fcb.

Generating this from qt5 module instead
2016-11-16 11:11:34 -06:00
Rex Dieter 8d54bf0fcb +qt5-srpm-macros 2016-11-16 10:46:45 -06:00
Rex Dieter 8723a0d67a sync patches 2016-11-16 10:25:36 -06:00
Rex Dieter b30ae9f982 5.6.2 2016-11-16 09:56:49 -06:00
Rex Dieter 01c7f9ab08 cmake3 available only in epel 2016-09-27 09:09:57 -05:00
Rex Dieter c3879d9ba5 qt5-rpm-macros: Requires: cmake(3) 2016-08-02 08:15:13 -05:00
Jan Grulich 2e047ecd6a Merge branch 'f24' into f23 2016-06-29 09:34:12 +02:00
Jan Grulich b6e73de5ff Merge branch 'f24' into f23 2016-06-09 15:10:25 +02:00
Rex Dieter b72517215c Merge commit '580f183d5a1d5c539c92ee2c5aaf34df21fc3f8e' into f23 2016-06-03 21:31:02 -05:00
Rex Dieter 0a934e53da Merge branch 'master' into f23 2016-04-17 11:22:13 -05:00
Rex Dieter 509b9e5fb9 Merge branch 'master' into f23 2016-03-25 08:42:22 -05:00
Rex Dieter 4caf8c0fc2 Merge branch 'master' into f23 2016-03-20 15:50:23 -05:00
Rex Dieter e49be6fa4d Merge commit 'c722cef9155548172f231a7f5029519d60955fad' into f23 2016-03-18 09:34:03 -05:00
Rex Dieter 25c3a28907 Revert "qt-5.5 segfault on QFileDialog without parent (#1291003)"
This reverts commit 21748c29f1.
2016-03-18 09:12:15 -05:00
Rex Dieter 889d9cbd71 Revert "QLineEdit - fix visibility of side widgets"
This reverts commit 1c75053c8f.
2016-03-18 09:12:15 -05:00
Rex Dieter 01f6a19d1a Revert "Crash in QXcbWindow::setParent() due to NULL xcbScreen (QTBUG-50081, #1291003)"
This reverts commit 9f91c6fd2e.
2016-03-18 09:12:15 -05:00
Rex Dieter d218a6e292 Revert "Release++"
This reverts commit 73aff94c60.
2016-03-18 09:12:15 -05:00
Rex Dieter c097bae150 Revert "enable -qt-xcb to fix non-US keys under VNC (#1295713)"
This reverts commit f1a8d41bb2.
2016-03-18 09:12:15 -05:00
Rex Dieter b4a0c6ebbe Revert "Item views don't handle insert/remove of rows robustly (QTBUG-48870)"
This reverts commit 04661b7de7.
2016-03-18 09:12:15 -05:00
Rex Dieter 04661b7de7 Item views don't handle insert/remove of rows robustly (QTBUG-48870) 2016-02-24 22:04:57 -06:00
Than Ngo f1a8d41bb2 enable -qt-xcb to fix non-US keys under VNC (#1295713) 2016-01-15 17:27:47 +01:00
Rex Dieter 73aff94c60 Release++ 2016-01-05 17:09:14 -06:00
Rex Dieter 9f91c6fd2e Crash in QXcbWindow::setParent() due to NULL xcbScreen (QTBUG-50081, #1291003) 2016-01-05 17:08:50 -06:00
Jan Grulich 1c75053c8f QLineEdit - fix visibility of side widgets
QTBUG:4246
2016-01-05 13:33:48 +01:00
Rex Dieter 21748c29f1 qt-5.5 segfault on QFileDialog without parent (#1291003) 2015-12-31 10:34:51 -06:00
15 changed files with 107 additions and 465 deletions

7
.gitignore vendored
View File

@ -1,6 +1 @@
/qtbase-opensource-src-5.5.1.tar.xz
/qtbase-opensource-src-5.6.0-beta.tar.gz
/qtbase-opensource-src-5.6.0-rc.tar.xz
/sources
/qtbase-opensource-src-5.6.0.tar.xz
/qtbase-opensource-src-5.6.1.tar.xz
/qtbase-opensource-src-5.6.2.tar.xz

View File

@ -1,37 +0,0 @@
From 46f1c4c86bbfe7b6917907700bec998626ad4a8b Mon Sep 17 00:00:00 2001
From: Alexander Volkov <a.volkov@rusbitech.ru>
Date: Wed, 11 May 2016 18:42:24 +0300
Subject: [PATCH 001/178] xcb: Properly interpret data.l[0] field of XdndStatus
message
The standard https://freedesktop.org/wiki/Specifications/XDND/
states: "In order for the proxy window to behave correctly, the
appropriate field of the client messages, window or data.l[0],
must contain the ID of the window in which the mouse is located,
not the proxy window that is receiving the messages."
So compare it with the current target window instead of the
current proxy window.
Change-Id: Ie31fd3aeadebcf5a9be7b9a9194f35a4ec7bdebb
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
---
src/plugins/platforms/xcb/qxcbdrag.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp
index 6fa5dfa..f93e420 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.cpp
+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
@@ -829,7 +829,7 @@ void QXcbDrag::handle_xdnd_status(const xcb_client_message_event_t *event)
DEBUG("xdndHandleStatus");
waiting_for_status = false;
// ignore late status messages
- if (event->data.data32[0] && event->data.data32[0] != current_proxy_target)
+ if (event->data.data32[0] && event->data.data32[0] != current_target)
return;
const bool dropPossible = event->data.data32[1];
--
2.7.4

View File

@ -1,31 +0,0 @@
From 2852a8b87e3a8ed95b72d26b0e180b7fd4491cf3 Mon Sep 17 00:00:00 2001
From: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Date: Fri, 26 Feb 2016 11:53:01 -0800
Subject: [PATCH 011/178] XCB: Auto-detect xcb-glx also with xcb-qt
Task-number: QTBUG-43784
Change-Id: Iaa0388e34900f6241db8cd864caed4fb6fc32819
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
---
configure | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/configure b/configure
index ce5b9c2..a481981 100755
--- a/configure
+++ b/configure
@@ -5555,6 +5555,11 @@ if [ "$CFG_XCB" != "no" ]; then
if [ "$CFG_XCB" = "qt" ]; then
QT_CONFIG="$QT_CONFIG xcb-qt"
+
+ if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+ CFG_XCB_GLX=yes
+ QT_CONFIG="$QT_CONFIG xcb-glx"
+ fi
else
CFG_XCB="system"
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
--
2.7.4

View File

@ -1,78 +0,0 @@
From 1108291e1a2e7de23440c2b36b2fd31010ae3f51 Mon Sep 17 00:00:00 2001
From: Urs Fleisch <ufleisch@users.sourceforge.net>
Date: Tue, 3 May 2016 20:01:01 +0200
Subject: [PATCH 032/178] xcb: Fix drop of text/uri-list and text/html.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When dropping URLs from Firefox or Chrome, the contents are encoded as
UTF16, but not correctly decoded. Moreover, the special handling of
"text/x-moz-url" drops does not work because this format is converted to
"text/uri-list" before. This fixes the handling for URL list and also
for UTF16 "text/html".
Task-number: QTBUG-47981
Change-Id: I1153f21ede07b2bfe4d104e0fe8bc8487ec5c165
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
---
src/plugins/platforms/xcb/qxcbmime.cpp | 42 +++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 11 deletions(-)
diff --git a/src/plugins/platforms/xcb/qxcbmime.cpp b/src/plugins/platforms/xcb/qxcbmime.cpp
index eeac561..cef2210 100644
--- a/src/plugins/platforms/xcb/qxcbmime.cpp
+++ b/src/plugins/platforms/xcb/qxcbmime.cpp
@@ -182,17 +182,37 @@ QVariant QXcbMime::mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a,
a == connection->atom(QXcbAtom::TEXT))
return QString::fromLatin1(data);
}
-
- // special case for uri types
- if (format == QLatin1String("text/uri-list")) {
- if (atomName == QLatin1String("text/x-moz-url")) {
- // we expect this as utf16 <url><space><title>
- // the first part is a url that should only contain ascci char
- // so it should be safe to check that the second char is 0
- // to verify that it is utf16
- if (data.size() > 1 && data.at(1) == 0)
- return QString::fromRawData((const QChar *)data.constData(),
- data.size() / 2).split(QLatin1Char('\n')).first().toLatin1();
+ // If data contains UTF16 text, convert it to a string.
+ // Firefox uses UTF16 without BOM for text/x-moz-url, "text/html",
+ // Google Chrome uses UTF16 without BOM for "text/x-moz-url",
+ // UTF16 with BOM for "text/html".
+ if ((format == QLatin1String("text/html") || format == QLatin1String("text/uri-list"))
+ && data.size() > 1) {
+ const quint8 byte0 = data.at(0);
+ const quint8 byte1 = data.at(1);
+ if ((byte0 == 0xff && byte1 == 0xfe) || (byte0 == 0xfe && byte1 == 0xff)
+ || (byte0 != 0 && byte1 == 0) || (byte0 == 0 && byte1 != 0)) {
+ const QString str = QString::fromUtf16(
+ reinterpret_cast<const ushort *>(data.constData()), data.size() / 2);
+ if (!str.isNull()) {
+ if (format == QLatin1String("text/uri-list")) {
+ const QStringList urls = str.split(QLatin1Char('\n'));
+ QList<QVariant> list;
+ foreach (const QString &s, urls) {
+ const QUrl url(s.trimmed());
+ if (url.isValid())
+ list.append(url);
+ }
+ // We expect "text/x-moz-url" as <url><space><title>.
+ // The atomName variable is not used because mimeAtomToString()
+ // converts "text/x-moz-url" to "text/uri-list".
+ if (!list.isEmpty() && connection->atomName(a) == "text/x-moz-url")
+ return list.first();
+ return list;
+ } else {
+ return str;
+ }
+ }
}
}
--
2.7.4

View File

@ -1,58 +0,0 @@
From f162e29acca99aaab173fb323d112aad9ec6c2b5 Mon Sep 17 00:00:00 2001
From: Urs Fleisch <ufleisch@users.sourceforge.net>
Date: Wed, 4 May 2016 19:47:16 +0200
Subject: [PATCH 033/178] xcb: Fix dropping URL on Firefox window.
When a URL is dropped on a Firefox window, the "text/x-moz-url" data
takes precedence over the "text/uri-list". The "text/x-moz-url" is
interpreted as UTF16, however, the data from Qt 5 applications is not
in the correct format. The code to create correct UTF16 data exists,
but it is not called for two reasons: The atomName will never be
"text/x-moz-url" because it is changed to "text/uri-list" by
mimeAtomToString() and the InternalMimeData::hasFormatHelper() case is
already handled above and the else part will never be considered.
This patch fixes the check and brings it into the right order.
Task-number: QTBUG-49947
Change-Id: I5ebd31914cc6c1417c513c1ff09e0e858a16915d
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
---
src/plugins/platforms/xcb/qxcbmime.cpp | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/plugins/platforms/xcb/qxcbmime.cpp b/src/plugins/platforms/xcb/qxcbmime.cpp
index cef2210..7fea068 100644
--- a/src/plugins/platforms/xcb/qxcbmime.cpp
+++ b/src/plugins/platforms/xcb/qxcbmime.cpp
@@ -111,17 +111,18 @@ bool QXcbMime::mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeDa
QString atomName = mimeAtomToString(connection, a);
if (QInternalMimeData::hasFormatHelper(atomName, mimeData)) {
*data = QInternalMimeData::renderDataHelper(atomName, mimeData);
- if (atomName == QLatin1String("application/x-color"))
+ // mimeAtomToString() converts "text/x-moz-url" to "text/uri-list",
+ // so QXcbConnection::atomName() has to be used.
+ if (atomName == QLatin1String("text/uri-list")
+ && connection->atomName(a) == "text/x-moz-url") {
+ const QByteArray uri = data->split('\n').first();
+ QString mozUri = QString::fromLatin1(uri, uri.size());
+ mozUri += QLatin1Char('\n');
+ *data = QByteArray(reinterpret_cast<const char *>(mozUri.utf16()),
+ mozUri.length() * 2);
+ } else if (atomName == QLatin1String("application/x-color"))
*dataFormat = 16;
ret = true;
- } else if (atomName == QLatin1String("text/x-moz-url") &&
- QInternalMimeData::hasFormatHelper(QLatin1String("text/uri-list"), mimeData)) {
- QByteArray uri = QInternalMimeData::renderDataHelper(
- QLatin1String("text/uri-list"), mimeData).split('\n').first();
- QString mozUri = QString::fromLatin1(uri, uri.size());
- mozUri += QLatin1Char('\n');
- *data = QByteArray(reinterpret_cast<const char *>(mozUri.utf16()), mozUri.length() * 2);
- ret = true;
} else if ((a == XCB_ATOM_PIXMAP || a == XCB_ATOM_BITMAP) && mimeData->hasImage()) {
ret = true;
}
--
2.7.4

View File

@ -1,37 +0,0 @@
From 76810e1495b65a09e9abd6164639e0caf34d61b8 Mon Sep 17 00:00:00 2001
From: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Date: Fri, 20 May 2016 14:52:18 +0200
Subject: [PATCH 148/178] xcb: Disable GLX pbuffers with Chromium in VMs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I474e4a4ce424a92b46381eb26aeda811ed059819
Task-number: QTCREATORBUG-16252
Task-number: QTCREATORBUG-14937
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
---
.../platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
index a3a8aa2..55d0ff3 100644
--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
@@ -201,8 +201,10 @@ QPlatformOffscreenSurface *QXcbGlxIntegration::createPlatformOffscreenSurface(QO
display = static_cast<Display *>(m_connection->xlib_display());
#endif
const char *glxvendor = glXGetClientString(display, GLX_VENDOR);
- if (glxvendor && !strcmp(glxvendor, "ATI"))
- glxPbufferUsable = false;
+ if (glxvendor) {
+ if (!strcmp(glxvendor, "ATI") || !strcmp(glxvendor, "Chromium"))
+ glxPbufferUsable = false;
+ }
}
if (glxPbufferUsable)
return new QGLXPbuffer(surface);
--
2.7.4

View File

@ -1,64 +0,0 @@
From 4762fabce16c611f12542a48b0dd31b3cec8e530 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= <spaz16@wp.pl>
Date: Thu, 14 Apr 2016 13:20:23 +0200
Subject: [PATCH 155/178] xcb: Fix transient parent and "Qt::Window" flag
Don't set transient parent property when Qt::Window flag is set.
Delete transient parent property if a window doesn't have a transient parent.
Force setting standard window flags for Qt::Window only if there are no other
flags.
Amends 98c10a02c5b77e023471ad6993dc66b013889cfb
Task-number: QTBUG-52550
Change-Id: I68ee715b632487e9dd0e7ffbbfc0c2cdd0f0e151
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
---
src/plugins/platforms/xcb/qxcbwindow.cpp | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 429ba8d..0c2f0d7 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -821,9 +821,9 @@ void QXcbWindow::show()
propagateSizeHints();
// update WM_TRANSIENT_FOR
- const QWindow *tp = window()->transientParent();
- if (isTransient(window()) || tp != 0) {
- xcb_window_t transientXcbParent = 0;
+ xcb_window_t transientXcbParent = 0;
+ if (isTransient(window())) {
+ const QWindow *tp = window()->transientParent();
if (tp && tp->handle())
transientXcbParent = static_cast<const QXcbWindow *>(tp->handle())->winId();
// Default to client leader if there is no transient parent, else modal dialogs can
@@ -836,6 +836,8 @@ void QXcbWindow::show()
1, &transientXcbParent));
}
}
+ if (!transientXcbParent)
+ Q_XCB_CALL(xcb_delete_property(xcb_connection(), m_window, XCB_ATOM_WM_TRANSIENT_FOR));
// update _MOTIF_WM_HINTS
updateMotifWmHintsBeforeMap();
@@ -1195,9 +1197,11 @@ void QXcbWindow::setMotifWindowFlags(Qt::WindowFlags flags)
mwmhints.flags |= MWM_HINTS_DECORATIONS;
bool customize = flags & Qt::CustomizeWindowHint;
- if (type == Qt::Window && !customize)
- flags |= Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint;
-
+ if (type == Qt::Window && !customize) {
+ const Qt::WindowFlags defaultFlags = Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint;
+ if (!(flags & defaultFlags))
+ flags |= defaultFlags;
+ }
if (!(flags & Qt::FramelessWindowHint) && !(customize && !(flags & Qt::WindowTitleHint))) {
mwmhints.decorations |= MWM_DECOR_BORDER;
mwmhints.decorations |= MWM_DECOR_RESIZEH;
--
2.7.4

View File

@ -52,12 +52,10 @@ BuildRequires: pkgconfig(libsystemd)
%global tests 1
%endif
#define prerelease rc
Summary: Qt5 - QtBase components
Name: qt5-qtbase
Version: 5.6.1
Release: 3%{?prerelease:.%{prerelease}}%{?dist}
Version: 5.6.2
Release: 1%{?dist}
# See LGPL_EXCEPTIONS.txt, for exception details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -79,10 +77,7 @@ Source6: 10-qt5-check-opengl2.sh
Patch2: qtbase-multilib_optflags.patch
# fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
Patch4: qtbase-opensource-src-5.3.2-QTBUG-35459.patch
# unconditionally enable freetype lcdfilter support
Patch12: qtbase-opensource-src-5.2.0-enable_ft_lcdfilter.patch
Patch4: qtbase-opensource-src-5.6.2-QTBUG-35459.patch
# upstreamable patches
@ -92,22 +87,16 @@ Patch12: qtbase-opensource-src-5.2.0-enable_ft_lcdfilter.patch
Patch52: qtbase-opensource-src-5.6.0-moc_WORDSIZE.patch
# arm patch
Patch54: qtbase-opensource-src-5.6.0-arm.patch
Patch54: qtbase-opensource-src-5.6.2-arm.patch
# recently passed code review, not integrated yet
# https://codereview.qt-project.org/126102/
Patch60: moc-get-the-system-defines-from-the-compiler-itself.patch
Patch60: qtbase-opensource-src-5.6.2-moc_system_defines.patch
# drop -O3 and make -O2 by default
Patch61: qt5-qtbase-cxxflag.patch
## upstream patches
Patch101: 0001-xcb-Properly-interpret-data.l-0-field-of-XdndStatus-.patch
Patch111: 0011-XCB-Auto-detect-xcb-glx-also-with-xcb-qt.patch
Patch132: 0032-xcb-Fix-drop-of-text-uri-list-and-text-html.patch
Patch133: 0033-xcb-Fix-dropping-URL-on-Firefox-window.patch
Patch148: 0148-xcb-Disable-GLX-pbuffers-with-Chromium-in-VMs.patch
Patch155: 0155-xcb-Fix-transient-parent-and-Qt-Window-flag.patch
# macros, be mindful to keep sync'd with macros.qt5
Source10: macros.qt5
@ -137,8 +126,13 @@ Source10: macros.qt5
# RPM drag in gtk2 as a dependency for the GTK+ 2 dialog support.
%global __requires_exclude_from ^%{_qt5_plugindir}/platformthemes/.*$
# for %%check
BuildRequires: cmake
# for %%check, rpm auto-provides
%if 0%{?fedora}
BuildRequires: cmake >= 3
%endif
%if 0%{?epel}
BuildRequires: cmake3
%endif
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: findutils
@ -179,6 +173,9 @@ BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1
Provides: bundled(libxkbcommon) = 0.4.1
%endif
BuildRequires: pkgconfig(xkeyboard-config)
%if 0%{?fedora} || 0%{?rhel} > 7
%global eglfs 1
%endif
%if 0%{?fedora} || 0%{?rhel} > 6
%define egl 1
BuildRequires: pkgconfig(egl)
@ -343,6 +340,12 @@ Summary: RPM macros for Qt5
# https://bugzilla.redhat.com/show_bug.cgi?id=1248174
Requires: redhat-rpm-config
%endif
%if 0%{?fedora}
Requires: cmake >= 3
%endif
%if 0%{?epel}
Requires: cmake3
%endif
# when qt5-rpm-macros was split out
Conflicts: qt5-qtbase-devel < 5.6.0-0.23
BuildArch: noarch
@ -354,20 +357,12 @@ RPM macros for building Qt5 packages.
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
%patch4 -p1 -b .QTBUG-35459
%patch12 -p1 -b .enable_ft_lcdfilter
%patch52 -p1 -b .moc_WORDSIZE
%patch54 -p1 -b .arm
%patch60 -p1 -b .moc_system_defines
%patch61 -p1 -b .qt5-qtbase-cxxflag
%patch101 -p1 -b .0001-xcb
%patch111 -p1 -b .0011
%patch132 -p1 -b .0032
%patch133 -p1 -b .0033
%patch148 -p1 -b .0148
%patch155 -p1 -b .0155
%define platform linux-g++
%if 0%{?inject_optflags}
@ -941,6 +936,10 @@ fi
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSX11IntegrationPlugin.cmake
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake
%endif
%if 0%{?eglfs}
%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSKmsEglDeviceIntegrationPlugin.cmake
%endif
%{_qt5_plugindir}/platforms/libqlinuxfb.so
%{_qt5_plugindir}/platforms/libqminimal.so
%{_qt5_plugindir}/platforms/libqoffscreen.so
@ -961,6 +960,15 @@ fi
%changelog
* Sun Oct 16 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.2-1
- 5.6.2
* Tue Sep 27 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-5
- cmake3 available only in epel
* Tue Aug 02 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-4
- qt5-rpm-macros: Requires: cmake(3)
* Tue Jun 14 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-3
- backport some xcb-plugin-related fixes

View File

@ -1,12 +0,0 @@
diff -up qtbase-opensource-src-5.2.0/src/gui/text/qfontengine_ft.cpp.lcdfilter qtbase-opensource-src-5.2.0/src/gui/text/qfontengine_ft.cpp
--- qtbase-opensource-src-5.2.0/src/gui/text/qfontengine_ft.cpp.lcdfilter 2013-12-08 11:09:51.000000000 -0600
+++ qtbase-opensource-src-5.2.0/src/gui/text/qfontengine_ft.cpp 2014-01-27 13:09:28.426065603 -0600
@@ -69,7 +69,7 @@
#include FT_CONFIG_OPTIONS_H
#endif
-#if defined(FT_LCD_FILTER_H) && defined(FT_CONFIG_OPTION_SUBPIXEL_RENDERING)
+#if defined(FT_LCD_FILTER_H)
#define QT_USE_FREETYPE_LCDFILTER
#endif

View File

@ -1,13 +0,0 @@
diff -up qtbase-opensource-src-5.3.2/src/xml/sax/qxml.cpp.QTBUG-35459 qtbase-opensource-src-5.3.2/src/xml/sax/qxml.cpp
diff -up qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h.QTBUG-35459 qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h
--- qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h.QTBUG-35459 2014-09-11 05:48:05.000000000 -0500
+++ qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h 2014-09-16 09:35:01.189255615 -0500
@@ -223,7 +223,7 @@ private:
// for the DTD currently being parsed.
static const int dtdRecursionLimit = 2;
// The maximum amount of characters an entity value may contain, after expansion.
- static const int entityCharacterLimit = 1024;
+ static const int entityCharacterLimit = 65536;
const QString &string();
void stringClear();

View File

@ -1,13 +0,0 @@
diff -up qtbase-opensource-src-5.6.0-beta/configure.than qtbase-opensource-src-5.6.0-beta/configure
--- qtbase-opensource-src-5.6.0-beta/configure.than 2016-02-12 13:56:20.057741037 +0100
+++ qtbase-opensource-src-5.6.0-beta/configure 2016-02-12 14:10:10.267768256 +0100
@@ -4346,6 +4346,9 @@ if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; th
else
# not cross compiling, host == target
CFG_HOST_ARCH="$CFG_ARCH"
+ if [ "$CFG_ARCH" = "arm" ] ; then
+ CFG_CPUFEATURES="neon"
+ fi
CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
fi
unset OUTFILE

View File

@ -0,0 +1,12 @@
diff -up qtbase-opensource-src-5.6.2/src/xml/sax/qxml_p.h.QTBUG-35459 qtbase-opensource-src-5.6.2/src/xml/sax/qxml_p.h
--- qtbase-opensource-src-5.6.2/src/xml/sax/qxml_p.h.QTBUG-35459 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/src/xml/sax/qxml_p.h 2016-10-16 08:40:04.441725330 -0500
@@ -217,7 +217,7 @@ private:
// for the DTD currently being parsed.
static const int dtdRecursionLimit = 2;
// The maximum amount of characters an entity value may contain, after expansion.
- static const int entityCharacterLimit = 1024;
+ static const int entityCharacterLimit = 65536;
const QString &string();
void stringClear();

View File

@ -0,0 +1,13 @@
diff -up qtbase-opensource-src-5.6.2/configure.arm qtbase-opensource-src-5.6.2/configure
--- qtbase-opensource-src-5.6.2/configure.arm 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/configure 2016-10-16 08:41:20.583267295 -0500
@@ -4373,6 +4373,9 @@ if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; th
else
# not cross compiling, host == target
CFG_HOST_ARCH="$CFG_ARCH"
+ if [ "$CFG_ARCH" = "arm" ] ; then
+ CFG_CPUFEATURES="neon"
+ fi
CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
fi
unset OUTFILE

View File

@ -1,39 +1,6 @@
From fa0d02eedcacc22db1026b902801b29176755362 Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Fri, 21 Aug 2015 17:08:19 -0700
Subject: [PATCH] moc: get the system #defines from the compiler itself
In order for moc to properly parse #ifdefs and family, we've had
QMAKE_COMPILER_DEFINES as a list of pre-defined macros from the
compiler. That list is woefully incomplete.
Instead, let's simply ask the compiler for the list. With GCC and
family, we use the -dM flag while preprocessing. With ICC on Windows,
the flag gains an extra "Q" but is otherwise the same. For MSVC, it
requires using some undocumented switches and parsing environment
variables (I've tested MSVC 2012, 2013 and 2015).
The new moc option is called --include to be similar to GCC's -include
option. It does more than just parse a list of pre-defined macros and
can be used to insert any sort of code that moc needs to parse prior to
the main file.
Change-Id: I7de033f80b0e4431b7f1ffff13fca02dbb60a0a6
---
mkspecs/features/moc.prf | 31 +++++++++++++--
qmake/main.cpp | 38 +++++++++++++++++++
src/tools/moc/main.cpp | 16 +++++++-
src/tools/moc/preprocessor.cpp | 60 +++++++++++++++++-------------
src/tools/moc/preprocessor.h | 1 +
tests/auto/tools/moc/subdir/extradefines.h | 1 +
tests/auto/tools/moc/tst_moc.cpp | 42 +++++++++++++++++++++
7 files changed, 158 insertions(+), 31 deletions(-)
create mode 100644 tests/auto/tools/moc/subdir/extradefines.h
diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf
index c0b5682..af885c3 100644
--- a/mkspecs/features/moc.prf
+++ b/mkspecs/features/moc.prf
diff -up qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf.moc_system_defines qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf
--- qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf 2016-10-16 08:42:20.561694271 -0500
@@ -24,8 +24,25 @@ win32:count(MOC_INCLUDEPATH, 40, >) {
write_file($$absolute_path($$WIN_INCLUDETEMP, $$OUT_PWD), WIN_INCLUDETEMP_CONT)|error("Aborting.")
}
@ -76,7 +43,7 @@ index c0b5682..af885c3 100644
return($$RET)
}
@@ -46,7 +69,7 @@ moc_header.output = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAK
@@ -46,7 +69,7 @@ moc_header.output = $$MOC_DIR/$${QMAKE_H
moc_header.input = HEADERS
moc_header.variable_out = SOURCES
moc_header.name = MOC ${QMAKE_FILE_IN}
@ -85,7 +52,7 @@ index c0b5682..af885c3 100644
silent:moc_header.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_header.commands
QMAKE_EXTRA_COMPILERS += moc_header
INCREDIBUILD_XGE += moc_header
@@ -58,7 +81,7 @@ moc_source.commands = ${QMAKE_FUNC_mocCmdBase} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_
@@ -58,7 +81,7 @@ moc_source.commands = ${QMAKE_FUNC_mocCm
moc_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}
moc_source.input = SOURCES OBJECTIVE_SOURCES
moc_source.name = MOC ${QMAKE_FILE_IN}
@ -94,10 +61,9 @@ index c0b5682..af885c3 100644
silent:moc_source.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_source.commands
QMAKE_EXTRA_COMPILERS += moc_source
INCREDIBUILD_XGE += moc_source
diff --git a/qmake/main.cpp b/qmake/main.cpp
index bde537d..e9b8bde 100644
--- a/qmake/main.cpp
+++ b/qmake/main.cpp
diff -up qtbase-opensource-src-5.6.2/qmake/main.cpp.moc_system_defines qtbase-opensource-src-5.6.2/qmake/main.cpp
--- qtbase-opensource-src-5.6.2/qmake/main.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/qmake/main.cpp 2016-10-16 08:42:20.561694271 -0500
@@ -1,6 +1,7 @@
/****************************************************************************
**
@ -117,7 +83,7 @@ index bde537d..e9b8bde 100644
QT_BEGIN_NAMESPACE
#ifdef Q_OS_WIN
@@ -246,6 +251,30 @@ static int doInstall(int argc, char **argv)
@@ -246,6 +251,30 @@ static int doInstall(int argc, char **ar
return 3;
}
@ -164,11 +130,10 @@ index bde537d..e9b8bde 100644
#endif
QMakeVfs vfs;
diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
index a5cbad7..d06335d 100644
--- a/src/tools/moc/main.cpp
+++ b/src/tools/moc/main.cpp
@@ -259,6 +259,11 @@ int runMoc(int argc, char **argv)
diff -up qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp.moc_system_defines qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp
--- qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp.moc_system_defines 2016-10-16 08:42:20.558694249 -0500
+++ qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp 2016-10-16 08:42:20.562694278 -0500
@@ -263,6 +263,11 @@ int runMoc(int argc, char **argv)
prependIncludeOption.setValueName(QStringLiteral("file"));
parser.addOption(prependIncludeOption);
@ -180,7 +145,7 @@ index a5cbad7..d06335d 100644
QCommandLineOption noNotesWarningsCompatOption(QStringLiteral("n"));
noNotesWarningsCompatOption.setDescription(QStringLiteral("Do not display notes (-nn) or warnings (-nw). Compatibility option."));
noNotesWarningsCompatOption.setValueName(QStringLiteral("which"));
@@ -406,7 +411,16 @@ int runMoc(int argc, char **argv)
@@ -412,7 +417,16 @@ int runMoc(int argc, char **argv)
moc.includes = pp.includes;
// 1. preprocess
@ -198,11 +163,10 @@ index a5cbad7..d06335d 100644
if (!pp.preprocessOnly) {
// 2. parse
diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp
index d036c40..70cf14a 100644
--- a/src/tools/moc/preprocessor.cpp
+++ b/src/tools/moc/preprocessor.cpp
@@ -1001,6 +1001,37 @@ static void mergeStringLiterals(Symbols *_symbols)
diff -up qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp.moc_system_defines qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp
--- qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp 2016-10-16 08:42:20.562694278 -0500
@@ -1007,6 +1007,37 @@ static void mergeStringLiterals(Symbols
}
}
@ -240,7 +204,7 @@ index d036c40..70cf14a 100644
void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
{
currentFilenames.push(filename);
@@ -1021,33 +1052,9 @@ void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
@@ -1027,33 +1058,9 @@ void Preprocessor::preprocess(const QByt
continue;
until(PP_NEWLINE);
@ -276,7 +240,7 @@ index d036c40..70cf14a 100644
if (Preprocessor::preprocessedIncludes.contains(include))
continue;
@@ -1202,6 +1209,7 @@ Symbols Preprocessor::preprocessed(const QByteArray &filename, QFile *file)
@@ -1208,6 +1215,7 @@ Symbols Preprocessor::preprocessed(const
input = cleaned(input);
// phase 2: tokenize for the preprocessor
@ -284,10 +248,9 @@ index d036c40..70cf14a 100644
symbols = tokenize(input);
#if 0
diff --git a/src/tools/moc/preprocessor.h b/src/tools/moc/preprocessor.h
index 9c81f86..d876caf 100644
--- a/src/tools/moc/preprocessor.h
+++ b/src/tools/moc/preprocessor.h
diff -up qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h.moc_system_defines qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h
--- qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h 2016-10-16 08:42:20.562694278 -0500
@@ -67,6 +67,7 @@ public:
QList<QByteArray> frameworks;
QSet<QByteArray> preprocessedIncludes;
@ -296,18 +259,15 @@ index 9c81f86..d876caf 100644
Symbols preprocessed(const QByteArray &filename, QFile *device);
void parseDefineArguments(Macro *m);
diff --git a/tests/auto/tools/moc/subdir/extradefines.h b/tests/auto/tools/moc/subdir/extradefines.h
new file mode 100644
index 0000000..e7888ce
--- /dev/null
+++ b/tests/auto/tools/moc/subdir/extradefines.h
diff -up qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h.moc_system_defines qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h
--- qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h.moc_system_defines 2016-10-16 08:42:20.562694278 -0500
+++ qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h 2016-10-16 08:42:20.562694278 -0500
@@ -0,0 +1 @@
+#define FOO 1
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
index fa1b68b..1d6a911 100644
--- a/tests/auto/tools/moc/tst_moc.cpp
+++ b/tests/auto/tools/moc/tst_moc.cpp
@@ -552,6 +552,8 @@ private slots:
diff -up qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp.moc_system_defines qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp
--- qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
+++ qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp 2016-10-16 08:42:20.562694278 -0500
@@ -581,6 +581,8 @@ private slots:
void frameworkSearchPath();
void cstyleEnums();
void defineMacroViaCmdline();
@ -316,10 +276,20 @@ index fa1b68b..1d6a911 100644
void specifyMetaTagsFromCmdline();
void invokable();
void singleFunctionKeywordSignalAndSlot();
@@ -1219,6 +1221,46 @@ void tst_Moc::defineMacroViaCmdline()
#endif
}
@@ -1248,6 +1250,46 @@ void tst_Moc::defineMacroViaCmdline()
args << m_sourceDirectory + QStringLiteral("/macro-on-cmdline.h");
proc.start(m_moc, args);
+ QVERIFY(proc.waitForFinished());
+ QCOMPARE(proc.exitCode(), 0);
+ QCOMPARE(proc.readAllStandardError(), QByteArray());
+ QByteArray mocOut = proc.readAllStandardOutput();
+ QVERIFY(!mocOut.isEmpty());
+#else
+ QSKIP("Only tested on linux/gcc");
+#endif
+}
+
+void tst_Moc::defineMacroViaForcedInclude()
+{
+#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS)
@ -350,19 +320,6 @@ index fa1b68b..1d6a911 100644
+ args << m_sourceDirectory + QStringLiteral("/macro-on-cmdline.h");
+
+ proc.start(m_moc, args);
+ QVERIFY(proc.waitForFinished());
+ QCOMPARE(proc.exitCode(), 0);
+ QCOMPARE(proc.readAllStandardError(), QByteArray());
+ QByteArray mocOut = proc.readAllStandardOutput();
+ QVERIFY(!mocOut.isEmpty());
+#else
+ QSKIP("Only tested on linux/gcc");
+#endif
+}
+
// tst_Moc::specifyMetaTagsFromCmdline()
// plugin_metadata.h contains a plugin which we register here. Since we're not building this
// application as a plugin, we need top copy some of the initializer code found in qplugin.h:
--
1.9.3
QVERIFY(proc.waitForFinished());
QCOMPARE(proc.exitCode(), 0);
QCOMPARE(proc.readAllStandardError(), QByteArray());

View File

@ -1 +1 @@
b23232190a3df61fe1ba81636987b036 qtbase-opensource-src-5.6.1.tar.xz
5672bf62a89061a6edb425b7796e4eca qtbase-opensource-src-5.6.2.tar.xz