summaryrefslogtreecommitdiffstats
path: root/src/qtbase-1.patch
blob: 42e97e92a0a6b1cad80ee0bf56459f7bdc27e467 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
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