Merge branch 'f24' into f23
This commit is contained in:
commit
9219112d74
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1 @@
|
|||||||
/qtbase-opensource-src-5.5.1.tar.xz
|
/qtbase-opensource-src-5.6.2.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
|
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -52,12 +52,10 @@ BuildRequires: pkgconfig(libsystemd)
|
|||||||
%global tests 1
|
%global tests 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
#define prerelease rc
|
|
||||||
|
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Version: 5.6.1
|
Version: 5.6.2
|
||||||
Release: 3%{?prerelease:.%{prerelease}}%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -79,10 +77,7 @@ Source6: 10-qt5-check-opengl2.sh
|
|||||||
Patch2: qtbase-multilib_optflags.patch
|
Patch2: qtbase-multilib_optflags.patch
|
||||||
|
|
||||||
# fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
|
# fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
|
||||||
Patch4: qtbase-opensource-src-5.3.2-QTBUG-35459.patch
|
Patch4: qtbase-opensource-src-5.6.2-QTBUG-35459.patch
|
||||||
|
|
||||||
# unconditionally enable freetype lcdfilter support
|
|
||||||
Patch12: qtbase-opensource-src-5.2.0-enable_ft_lcdfilter.patch
|
|
||||||
|
|
||||||
# upstreamable patches
|
# 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
|
Patch52: qtbase-opensource-src-5.6.0-moc_WORDSIZE.patch
|
||||||
|
|
||||||
# arm 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
|
# recently passed code review, not integrated yet
|
||||||
# https://codereview.qt-project.org/126102/
|
# 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
|
# drop -O3 and make -O2 by default
|
||||||
Patch61: qt5-qtbase-cxxflag.patch
|
Patch61: qt5-qtbase-cxxflag.patch
|
||||||
|
|
||||||
## upstream patches
|
## 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
|
# macros, be mindful to keep sync'd with macros.qt5
|
||||||
Source10: 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.
|
# RPM drag in gtk2 as a dependency for the GTK+ 2 dialog support.
|
||||||
%global __requires_exclude_from ^%{_qt5_plugindir}/platformthemes/.*$
|
%global __requires_exclude_from ^%{_qt5_plugindir}/platformthemes/.*$
|
||||||
|
|
||||||
# for %%check
|
# for %%check, rpm auto-provides
|
||||||
BuildRequires: cmake
|
%if 0%{?fedora}
|
||||||
|
BuildRequires: cmake >= 3
|
||||||
|
%endif
|
||||||
|
%if 0%{?epel}
|
||||||
|
BuildRequires: cmake3
|
||||||
|
%endif
|
||||||
BuildRequires: cups-devel
|
BuildRequires: cups-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
BuildRequires: findutils
|
BuildRequires: findutils
|
||||||
@ -179,6 +173,9 @@ BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1
|
|||||||
Provides: bundled(libxkbcommon) = 0.4.1
|
Provides: bundled(libxkbcommon) = 0.4.1
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: pkgconfig(xkeyboard-config)
|
BuildRequires: pkgconfig(xkeyboard-config)
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||||
|
%global eglfs 1
|
||||||
|
%endif
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
%define egl 1
|
%define egl 1
|
||||||
BuildRequires: pkgconfig(egl)
|
BuildRequires: pkgconfig(egl)
|
||||||
@ -343,6 +340,12 @@ Summary: RPM macros for Qt5
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1248174
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1248174
|
||||||
Requires: redhat-rpm-config
|
Requires: redhat-rpm-config
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?fedora}
|
||||||
|
Requires: cmake >= 3
|
||||||
|
%endif
|
||||||
|
%if 0%{?epel}
|
||||||
|
Requires: cmake3
|
||||||
|
%endif
|
||||||
# when qt5-rpm-macros was split out
|
# when qt5-rpm-macros was split out
|
||||||
Conflicts: qt5-qtbase-devel < 5.6.0-0.23
|
Conflicts: qt5-qtbase-devel < 5.6.0-0.23
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -354,20 +357,12 @@ RPM macros for building Qt5 packages.
|
|||||||
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
|
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
|
||||||
|
|
||||||
%patch4 -p1 -b .QTBUG-35459
|
%patch4 -p1 -b .QTBUG-35459
|
||||||
%patch12 -p1 -b .enable_ft_lcdfilter
|
|
||||||
|
|
||||||
%patch52 -p1 -b .moc_WORDSIZE
|
%patch52 -p1 -b .moc_WORDSIZE
|
||||||
%patch54 -p1 -b .arm
|
%patch54 -p1 -b .arm
|
||||||
%patch60 -p1 -b .moc_system_defines
|
%patch60 -p1 -b .moc_system_defines
|
||||||
%patch61 -p1 -b .qt5-qtbase-cxxflag
|
%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++
|
%define platform linux-g++
|
||||||
|
|
||||||
%if 0%{?inject_optflags}
|
%if 0%{?inject_optflags}
|
||||||
@ -941,6 +936,10 @@ fi
|
|||||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSX11IntegrationPlugin.cmake
|
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSX11IntegrationPlugin.cmake
|
||||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake
|
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake
|
||||||
%endif
|
%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/libqlinuxfb.so
|
||||||
%{_qt5_plugindir}/platforms/libqminimal.so
|
%{_qt5_plugindir}/platforms/libqminimal.so
|
||||||
%{_qt5_plugindir}/platforms/libqoffscreen.so
|
%{_qt5_plugindir}/platforms/libqoffscreen.so
|
||||||
@ -961,6 +960,15 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Tue Jun 14 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-3
|
||||||
- backport some xcb-plugin-related fixes
|
- backport some xcb-plugin-related fixes
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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();
|
|
@ -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
|
|
12
qtbase-opensource-src-5.6.2-QTBUG-35459.patch
Normal file
12
qtbase-opensource-src-5.6.2-QTBUG-35459.patch
Normal 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();
|
13
qtbase-opensource-src-5.6.2-arm.patch
Normal file
13
qtbase-opensource-src-5.6.2-arm.patch
Normal 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
|
@ -1,39 +1,6 @@
|
|||||||
From fa0d02eedcacc22db1026b902801b29176755362 Mon Sep 17 00:00:00 2001
|
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
|
||||||
From: Thiago Macieira <thiago.macieira@intel.com>
|
--- qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
|
||||||
Date: Fri, 21 Aug 2015 17:08:19 -0700
|
+++ qtbase-opensource-src-5.6.2/mkspecs/features/moc.prf 2016-10-16 08:42:20.561694271 -0500
|
||||||
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
|
|
||||||
@@ -24,8 +24,25 @@ win32:count(MOC_INCLUDEPATH, 40, >) {
|
@@ -24,8 +24,25 @@ win32:count(MOC_INCLUDEPATH, 40, >) {
|
||||||
write_file($$absolute_path($$WIN_INCLUDETEMP, $$OUT_PWD), WIN_INCLUDETEMP_CONT)|error("Aborting.")
|
write_file($$absolute_path($$WIN_INCLUDETEMP, $$OUT_PWD), WIN_INCLUDETEMP_CONT)|error("Aborting.")
|
||||||
}
|
}
|
||||||
@ -76,7 +43,7 @@ index c0b5682..af885c3 100644
|
|||||||
return($$RET)
|
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.input = HEADERS
|
||||||
moc_header.variable_out = SOURCES
|
moc_header.variable_out = SOURCES
|
||||||
moc_header.name = MOC ${QMAKE_FILE_IN}
|
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
|
silent:moc_header.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_header.commands
|
||||||
QMAKE_EXTRA_COMPILERS += moc_header
|
QMAKE_EXTRA_COMPILERS += moc_header
|
||||||
INCREDIBUILD_XGE += 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.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}
|
||||||
moc_source.input = SOURCES OBJECTIVE_SOURCES
|
moc_source.input = SOURCES OBJECTIVE_SOURCES
|
||||||
moc_source.name = MOC ${QMAKE_FILE_IN}
|
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
|
silent:moc_source.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_source.commands
|
||||||
QMAKE_EXTRA_COMPILERS += moc_source
|
QMAKE_EXTRA_COMPILERS += moc_source
|
||||||
INCREDIBUILD_XGE += moc_source
|
INCREDIBUILD_XGE += moc_source
|
||||||
diff --git 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
|
||||||
index bde537d..e9b8bde 100644
|
--- qtbase-opensource-src-5.6.2/qmake/main.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
|
||||||
--- a/qmake/main.cpp
|
+++ qtbase-opensource-src-5.6.2/qmake/main.cpp 2016-10-16 08:42:20.561694271 -0500
|
||||||
+++ b/qmake/main.cpp
|
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
@ -117,7 +83,7 @@ index bde537d..e9b8bde 100644
|
|||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#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;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,11 +130,10 @@ index bde537d..e9b8bde 100644
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
QMakeVfs vfs;
|
QMakeVfs vfs;
|
||||||
diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
|
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
|
||||||
index a5cbad7..d06335d 100644
|
--- qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp.moc_system_defines 2016-10-16 08:42:20.558694249 -0500
|
||||||
--- a/src/tools/moc/main.cpp
|
+++ qtbase-opensource-src-5.6.2/src/tools/moc/main.cpp 2016-10-16 08:42:20.562694278 -0500
|
||||||
+++ b/src/tools/moc/main.cpp
|
@@ -263,6 +263,11 @@ int runMoc(int argc, char **argv)
|
||||||
@@ -259,6 +259,11 @@ int runMoc(int argc, char **argv)
|
|
||||||
prependIncludeOption.setValueName(QStringLiteral("file"));
|
prependIncludeOption.setValueName(QStringLiteral("file"));
|
||||||
parser.addOption(prependIncludeOption);
|
parser.addOption(prependIncludeOption);
|
||||||
|
|
||||||
@ -180,7 +145,7 @@ index a5cbad7..d06335d 100644
|
|||||||
QCommandLineOption noNotesWarningsCompatOption(QStringLiteral("n"));
|
QCommandLineOption noNotesWarningsCompatOption(QStringLiteral("n"));
|
||||||
noNotesWarningsCompatOption.setDescription(QStringLiteral("Do not display notes (-nn) or warnings (-nw). Compatibility option."));
|
noNotesWarningsCompatOption.setDescription(QStringLiteral("Do not display notes (-nn) or warnings (-nw). Compatibility option."));
|
||||||
noNotesWarningsCompatOption.setValueName(QStringLiteral("which"));
|
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;
|
moc.includes = pp.includes;
|
||||||
|
|
||||||
// 1. preprocess
|
// 1. preprocess
|
||||||
@ -198,11 +163,10 @@ index a5cbad7..d06335d 100644
|
|||||||
|
|
||||||
if (!pp.preprocessOnly) {
|
if (!pp.preprocessOnly) {
|
||||||
// 2. parse
|
// 2. parse
|
||||||
diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp
|
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
|
||||||
index d036c40..70cf14a 100644
|
--- qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
|
||||||
--- a/src/tools/moc/preprocessor.cpp
|
+++ qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.cpp 2016-10-16 08:42:20.562694278 -0500
|
||||||
+++ b/src/tools/moc/preprocessor.cpp
|
@@ -1007,6 +1007,37 @@ static void mergeStringLiterals(Symbols
|
||||||
@@ -1001,6 +1001,37 @@ static void mergeStringLiterals(Symbols *_symbols)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -240,7 +204,7 @@ index d036c40..70cf14a 100644
|
|||||||
void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
|
void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
|
||||||
{
|
{
|
||||||
currentFilenames.push(filename);
|
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;
|
continue;
|
||||||
until(PP_NEWLINE);
|
until(PP_NEWLINE);
|
||||||
|
|
||||||
@ -276,7 +240,7 @@ index d036c40..70cf14a 100644
|
|||||||
|
|
||||||
if (Preprocessor::preprocessedIncludes.contains(include))
|
if (Preprocessor::preprocessedIncludes.contains(include))
|
||||||
continue;
|
continue;
|
||||||
@@ -1202,6 +1209,7 @@ Symbols Preprocessor::preprocessed(const QByteArray &filename, QFile *file)
|
@@ -1208,6 +1215,7 @@ Symbols Preprocessor::preprocessed(const
|
||||||
input = cleaned(input);
|
input = cleaned(input);
|
||||||
|
|
||||||
// phase 2: tokenize for the preprocessor
|
// phase 2: tokenize for the preprocessor
|
||||||
@ -284,10 +248,9 @@ index d036c40..70cf14a 100644
|
|||||||
symbols = tokenize(input);
|
symbols = tokenize(input);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
diff --git 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
|
||||||
index 9c81f86..d876caf 100644
|
--- qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
|
||||||
--- a/src/tools/moc/preprocessor.h
|
+++ qtbase-opensource-src-5.6.2/src/tools/moc/preprocessor.h 2016-10-16 08:42:20.562694278 -0500
|
||||||
+++ b/src/tools/moc/preprocessor.h
|
|
||||||
@@ -67,6 +67,7 @@ public:
|
@@ -67,6 +67,7 @@ public:
|
||||||
QList<QByteArray> frameworks;
|
QList<QByteArray> frameworks;
|
||||||
QSet<QByteArray> preprocessedIncludes;
|
QSet<QByteArray> preprocessedIncludes;
|
||||||
@ -296,18 +259,15 @@ index 9c81f86..d876caf 100644
|
|||||||
Symbols preprocessed(const QByteArray &filename, QFile *device);
|
Symbols preprocessed(const QByteArray &filename, QFile *device);
|
||||||
|
|
||||||
void parseDefineArguments(Macro *m);
|
void parseDefineArguments(Macro *m);
|
||||||
diff --git a/tests/auto/tools/moc/subdir/extradefines.h 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
|
||||||
new file mode 100644
|
--- qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h.moc_system_defines 2016-10-16 08:42:20.562694278 -0500
|
||||||
index 0000000..e7888ce
|
+++ qtbase-opensource-src-5.6.2/tests/auto/tools/moc/subdir/extradefines.h 2016-10-16 08:42:20.562694278 -0500
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/auto/tools/moc/subdir/extradefines.h
|
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+#define FOO 1
|
+#define FOO 1
|
||||||
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
|
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
|
||||||
index fa1b68b..1d6a911 100644
|
--- qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp.moc_system_defines 2016-09-16 00:49:42.000000000 -0500
|
||||||
--- a/tests/auto/tools/moc/tst_moc.cpp
|
+++ qtbase-opensource-src-5.6.2/tests/auto/tools/moc/tst_moc.cpp 2016-10-16 08:42:20.562694278 -0500
|
||||||
+++ b/tests/auto/tools/moc/tst_moc.cpp
|
@@ -581,6 +581,8 @@ private slots:
|
||||||
@@ -552,6 +552,8 @@ private slots:
|
|
||||||
void frameworkSearchPath();
|
void frameworkSearchPath();
|
||||||
void cstyleEnums();
|
void cstyleEnums();
|
||||||
void defineMacroViaCmdline();
|
void defineMacroViaCmdline();
|
||||||
@ -316,10 +276,20 @@ index fa1b68b..1d6a911 100644
|
|||||||
void specifyMetaTagsFromCmdline();
|
void specifyMetaTagsFromCmdline();
|
||||||
void invokable();
|
void invokable();
|
||||||
void singleFunctionKeywordSignalAndSlot();
|
void singleFunctionKeywordSignalAndSlot();
|
||||||
@@ -1219,6 +1221,46 @@ void tst_Moc::defineMacroViaCmdline()
|
@@ -1248,6 +1250,46 @@ void tst_Moc::defineMacroViaCmdline()
|
||||||
#endif
|
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()
|
+void tst_Moc::defineMacroViaForcedInclude()
|
||||||
+{
|
+{
|
||||||
+#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS)
|
+#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");
|
+ args << m_sourceDirectory + QStringLiteral("/macro-on-cmdline.h");
|
||||||
+
|
+
|
||||||
+ proc.start(m_moc, args);
|
+ proc.start(m_moc, args);
|
||||||
+ QVERIFY(proc.waitForFinished());
|
QVERIFY(proc.waitForFinished());
|
||||||
+ QCOMPARE(proc.exitCode(), 0);
|
QCOMPARE(proc.exitCode(), 0);
|
||||||
+ QCOMPARE(proc.readAllStandardError(), QByteArray());
|
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
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user