summaryrefslogtreecommitdiffstats
path: root/src/qtbase-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/qtbase-1.patch')
-rw-r--r--src/qtbase-1.patch360
1 files changed, 360 insertions, 0 deletions
diff --git a/src/qtbase-1.patch b/src/qtbase-1.patch
new file mode 100644
index 0000000..42e97e9
--- /dev/null
+++ b/src/qtbase-1.patch
@@ -0,0 +1,360 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 99dd0c414f1eb7142993febca7b722f6f8b43b8f Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 19 Sep 2013 08:53:30 +0200
+Subject: [PATCH 01/11] fix off-by-one error in NTLM proxy authentication
+
+Change-Id: Icee3fc939d81c726f8e4ed484a0c8685cf1f271c
+Task-number: QTBUG-27555
+Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
+(cherry picked from commit c97e369e70c9b17b3ac00f43ccdc191df2183da1)
+
+diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
+index 73991ab..0ea97f2 100644
+--- a/src/network/kernel/qauthenticator.cpp
++++ b/src/network/kernel/qauthenticator.cpp
+@@ -1392,7 +1392,7 @@ static bool qNtlmDecodePhase2(const QByteArray& data, QNtlmPhase2Block& ch)
+ ds >> ch.targetInfo;
+
+ if (ch.targetName.len > 0) {
+- if (ch.targetName.len + ch.targetName.offset >= (unsigned)data.size())
++ if (ch.targetName.len + ch.targetName.offset > (unsigned)data.size())
+ return false;
+
+ ch.targetNameStr = qStringFromUcs2Le(data.mid(ch.targetName.offset, ch.targetName.len));
+--
+1.8.1.4
+
+
+From 09609302a0e34b1185ce8456c99196a75a85d5a4 Mon Sep 17 00:00:00 2001
+From: Friedemann Kleint <Friedemann.Kleint@digia.com>
+Date: Mon, 26 Aug 2013 11:52:47 +0200
+Subject: [PATCH 02/11] Windows: Fix compilation with MinGW-64, gcc 4.8.1
+
+A definition for FILE_ID_128 was added.
+
+Change-Id: Ifdfe5da1b15a90afdf5cf09d92838a04b1cf5c19
+Reviewed-by: Kai Koehne <kai.koehne@digia.com>
+(cherry picked from commit e59a5f9fdcec5df2f54e88d75a75fcb4a2fe577b)
+
+diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
+index e8904b0..57231b5 100644
+--- a/src/corelib/io/qfilesystemengine_win.cpp
++++ b/src/corelib/io/qfilesystemengine_win.cpp
+@@ -573,9 +573,12 @@ typedef enum { Q_FileIdInfo = 18 } Q_FILE_INFO_BY_HANDLE_CLASS;
+
+ # if defined(Q_CC_MINGW) || (defined(Q_CC_MSVC) && _MSC_VER < 1700)
+
++// MinGW-64 defines FILE_ID_128 as of gcc-4.8.1 along with FILE_SUPPORTS_INTEGRITY_STREAMS
++# if !(defined(Q_CC_MINGW) && defined(FILE_SUPPORTS_INTEGRITY_STREAMS))
+ typedef struct _FILE_ID_128 {
+ BYTE Identifier[16];
+ } FILE_ID_128, *PFILE_ID_128;
++# endif // !(Q_CC_MINGW && FILE_SUPPORTS_INTEGRITY_STREAMS)
+
+ typedef struct _FILE_ID_INFO {
+ ULONGLONG VolumeSerialNumber;
+@@ -614,7 +617,8 @@ QByteArray fileIdWin8(HANDLE handle)
+ &infoEx, sizeof(FILE_ID_INFO))) {
+ result = QByteArray::number(infoEx.VolumeSerialNumber, 16);
+ result += ':';
+- result += QByteArray((char *)infoEx.FileId.Identifier, sizeof(infoEx.FileId.Identifier)).toHex();
++ // Note: MinGW-64's definition of FILE_ID_128 differs from the MSVC one.
++ result += QByteArray((char *)&infoEx.FileId, sizeof(infoEx.FileId)).toHex();
+ }
+ }
+ return result;
+--
+1.8.1.4
+
+
+From e82966dbb4222149a40da45ad8816d622a0a949c Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@digia.com>
+Date: Mon, 2 Sep 2013 10:20:37 +0200
+Subject: [PATCH 03/11] Fix compilation with latest Mingw-w64 headers
+
+Fix compilation with e.g. mingw-builds 4.8.1-rev4 package. The Mingw-W64
+headers define SHSTOCKICONINFO only for vista and newer.
+
+Task-number: QTBUG-33225
+Change-Id: I30a62c642ae017c7eafb99b1efb06578fd61a12e
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
+(cherry picked from commit 0ed30cbf09db591b46370888fa2f687310bf5cff)
+
+diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp
+index 844e46e..d2bd0be 100644
+--- a/src/plugins/platforms/windows/qwindowstheme.cpp
++++ b/src/plugins/platforms/windows/qwindowstheme.cpp
+@@ -39,6 +39,12 @@
+ **
+ ****************************************************************************/
+
++// SHSTOCKICONINFO is only available since Vista
++#if _WIN32_WINNT < 0x0600
++# undef _WIN32_WINNT
++# define _WIN32_WINNT 0x0600
++#endif
++
+ #include "qwindowstheme.h"
+ #include "qwindowsdialoghelpers.h"
+ #include "qwindowscontext.h"
+--
+1.8.1.4
+
+
+From 562b005aaf1d6a1cd3f2ab4e1cae3a977b942c3f Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@digia.com>
+Date: Thu, 19 Sep 2013 15:17:45 +0200
+Subject: [PATCH 04/11] Fix typo in define guards
+
+Needed to fix compilation with latest Mingw-w64 headers (version 3)
+
+Change-Id: I70c7ff3d833e15e99a915a2df83f04d03a968300
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
+(cherry picked from commit 409526b8a6addd7344d4efd5a1464aaf40cf260f)
+
+diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+index 33bed61..b91e3ee 100644
+--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
++++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+@@ -232,7 +232,7 @@ DECLARE_INTERFACE_(IShellItemFilter, IUnknown)
+ };
+ #endif
+
+-#ifndef __IShellEnumItems_INTERFACE_DEFINED__
++#ifndef __IEnumShellItems_INTERFACE_DEFINED__
+ DECLARE_INTERFACE_(IEnumShellItems, IUnknown)
+ {
+ STDMETHOD(Next)(THIS_ ULONG celt, IShellItem **rgelt, ULONG *pceltFetched) PURE;
+--
+1.8.1.4
+
+
+From 28285c1c123f6673e433b5bc03ef2001f3bbbf0a Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@digia.com>
+Date: Thu, 19 Sep 2013 15:18:41 +0200
+Subject: [PATCH 05/11] Require Windows Vista
+
+The structure FDAP is only available as Windows Vista, and MinGW-w64
+do not actually define it if _WIN32_WINNT isn't set.
+
+Needed to fix compilation with latest MinGW-w64 headers (version 3).
+
+Change-Id: I566ea6bd4c3d8d5a495b644aedffb7de42a6d6e4
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
+(cherry picked from commit 8a383c585f337320a203e26c505b594c949d59e5)
+
+Conflicts:
+ src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+
+diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+index b91e3ee..4180b90 100644
+--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
++++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+@@ -39,6 +39,8 @@
+ **
+ ****************************************************************************/
+
++#define _WIN32_WINNT 0x0600
++
+ #include "qwindowsdialoghelpers.h"
+
+ #include "qwindowscontext.h"
+--
+1.8.1.4
+
+
+From e50ce8fe6bf48be165a51c2f5f5b7638d0528593 Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@digia.com>
+Date: Mon, 21 Oct 2013 12:54:45 +0200
+Subject: [PATCH 06/11] Fix compilation with latest MinGW-w64 (release 3)
+
+Now that MinGW-w64 fixed the headers the old hack actually break stuff.
+
+Change-Id: I1f60b9176982f6c07e01f3960bc1d7e70d7f9481
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
+(cherry picked from commit 9b187bcd6a256b53cc2fb8550da64b30b0cc5760)
+
+diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+index 4180b90..3b64edc 100644
+--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
++++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+@@ -1712,7 +1712,9 @@ static int CALLBACK xpFileDialogGetExistingDirCallbackProc(HWND hwnd, UINT uMsg,
+ return dialog->existingDirCallback(hwnd, uMsg, lParam);
+ }
+
+-#ifdef Q_CC_MINGW
++/* The correct declaration of the SHGetPathFromIDList symbol is
++ * being used in mingw-w64 as of r6215, which is a v3 snapshot. */
++#if defined(Q_CC_MINGW) && (!defined(__MINGW64_VERSION_MAJOR) || _MINGW64_VERSION_MAJOR < 3)
+ typedef ITEMIDLIST *qt_LpItemIdList;
+ #else
+ typedef PIDLIST_ABSOLUTE qt_LpItemIdList;
+--
+1.8.1.4
+
+
+From c730e0a1c9087fd1e0ae8c08e5f92d55eec79d25 Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@digia.com>
+Date: Wed, 23 Oct 2013 15:25:11 +0200
+Subject: [PATCH 07/11] Fix typo in check for MINGW_W64 version
+
+Got introduced in 9b187bcd6a256b53cc2fb85500
+
+Change-Id: I1d713f8309d3d8568ea836cc1d29f9dca685ac01
+Reviewed-by: Jonathan Liu <net147@gmail.com>
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
+(cherry picked from commit 17809b41a6232220b1b19052cd9ebf48899c476a)
+
+diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+index 3b64edc..246f67a 100644
+--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
++++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+@@ -1714,7 +1714,7 @@ static int CALLBACK xpFileDialogGetExistingDirCallbackProc(HWND hwnd, UINT uMsg,
+
+ /* The correct declaration of the SHGetPathFromIDList symbol is
+ * being used in mingw-w64 as of r6215, which is a v3 snapshot. */
+-#if defined(Q_CC_MINGW) && (!defined(__MINGW64_VERSION_MAJOR) || _MINGW64_VERSION_MAJOR < 3)
++#if defined(Q_CC_MINGW) && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 3)
+ typedef ITEMIDLIST *qt_LpItemIdList;
+ #else
+ typedef PIDLIST_ABSOLUTE qt_LpItemIdList;
+--
+1.8.1.4
+
+
+From 5ac54731a9590161e7b00c38d100232a03ecf260 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 26 Feb 2013 13:23:33 +0100
+Subject: [PATCH 08/11] use pkg-config for freetype
+
+Change-Id: Id2f78ed9dbdcacd570eb25982cbd700d0437542a
+
+diff --git a/src/platformsupport/fontdatabases/basic/basic.pri b/src/platformsupport/fontdatabases/basic/basic.pri
+index 88be809..8fc19d2 100644
+--- a/src/platformsupport/fontdatabases/basic/basic.pri
++++ b/src/platformsupport/fontdatabases/basic/basic.pri
+@@ -82,5 +82,7 @@ contains(QT_CONFIG, freetype) {
+ } else:contains(QT_CONFIG, system-freetype) {
+ # pull in the proper freetype2 include directory
+ include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
++ CONFIG += link_pkgconfig
++ PKGCONFIG += freetype2
+ }
+
+--
+1.8.1.4
+
+
+From 78af990867b4f6653839e59702f25a0d7871aaf0 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 22 Dec 2012 17:45:34 +0100
+Subject: [PATCH 09/11] WIP: qmake writeFile(): work around concurrent
+ QDir::mkpath() failure
+
+This actually happened when building qtimageformats with make -j4.
+Failure in mkspecs/features/qt_plugin.prf:
+ write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") with make -j4.
+
+Change-Id: Ibc685f613d721e178e6aff408905d77b0ce1740a
+
+diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp
+index be0d8ea..6306235 100644
+--- a/qmake/library/qmakebuiltins.cpp
++++ b/qmake/library/qmakebuiltins.cpp
+@@ -310,9 +310,17 @@ QMakeEvaluator::writeFile(const QString &ctx, const QString &fn, QIODevice::Open
+ {
+ QFileInfo qfi(fn);
+ if (!QDir::current().mkpath(qfi.path())) {
+- evalError(fL1S("Cannot create %1directory %2.")
+- .arg(ctx, QDir::toNativeSeparators(qfi.path())));
+- return ReturnFalse;
++ // could have failed due to concurrent mkpath attempt
++#ifdef Q_OS_WIN
++ Sleep(1000);
++#else
++ sleep(1);
++#endif
++ if (!qfi.dir().exists()) {
++ evalError(fL1S("Cannot create %1directory %2.")
++ .arg(ctx, QDir::toNativeSeparators(qfi.path())));
++ return ReturnFalse;
++ }
+ }
+ QString errStr;
+ if (!doWriteFile(qfi.filePath(), mode, contents, &errStr)) {
+--
+1.8.1.4
+
+
+From 70a865104329d4c874d4fd287b5ccd5563c0098a Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 18 May 2013 23:07:46 +0200
+Subject: [PATCH 10/11] use pkgconfig for icu detection (MXE specific)
+
+Change-Id: I874171361fec812cb5a5a56e4d8d90a630be3bf3
+
+diff --git a/config.tests/unix/icu/icu.pro b/config.tests/unix/icu/icu.pro
+index 8e58334..1d66c16 100644
+--- a/config.tests/unix/icu/icu.pro
++++ b/config.tests/unix/icu/icu.pro
+@@ -1,4 +1,4 @@
+ SOURCES = icu.cpp
+ CONFIG -= qt dylib app_bundle
+-unix:LIBS += -licuuc -licui18n
+-win32:LIBS += -licuin
++CONFIG += link_pkgconfig
++PKGCONFIG += icu-i18n
+--
+1.8.1.4
+
+
+From 3f7f2278f14f4f3eb9d414cd2e86631d48f418aa Mon Sep 17 00:00:00 2001
+From: Tobias Koenig <tobias.koenig@kdab.com>
+Date: Mon, 28 Oct 2013 09:25:11 +0100
+Subject: [PATCH 11/11] Add QSQLITE_OPEN_URI database connection flag
+
+This flag enables the URI mode for database names in the SQLite
+backend. Without this flag, it's not possible to use URIs like
+ 'file:somedb?mode=memory&cache=shared'
+to create shared, in-memory databases.
+
+Change-Id: I2938184dad1f27c7af454385ca305bd4f6ed1a5e
+Reviewed-by: Mark Brand <mabrand@mabrand.nl>
+(cherry picked from commit 1f6dfa774959830a915f3e2a7b0561ca29b8c485)
+
+Conflicts:
+ dist/changes-5.2.0
+
+diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
+index ffeb792..0a8b71a 100644
+--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
++++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
+@@ -596,6 +596,8 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
+ }
+ if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
+ openMode = SQLITE_OPEN_READONLY;
++ if (option == QLatin1String("QSQLITE_OPEN_URI"))
++ openMode |= SQLITE_OPEN_URI;
+ if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE"))
+ sharedCache = true;
+ }
+diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp
+index 0ca79fd..520d697 100644
+--- a/src/sql/kernel/qsqldatabase.cpp
++++ b/src/sql/kernel/qsqldatabase.cpp
+@@ -1264,6 +1264,7 @@ QSqlRecord QSqlDatabase::record(const QString& tablename) const
+ \list
+ \li QSQLITE_BUSY_TIMEOUT
+ \li QSQLITE_OPEN_READONLY
++ \li QSQLITE_OPEN_URI
+ \li QSQLITE_ENABLE_SHARED_CACHE
+ \endlist
+
+--
+1.8.1.4
+