From af4b34bf16b55c71dc42ec4847f7b645f8b80b6c Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Thu, 24 Oct 2013 23:07:21 +0200 Subject: package qtbase: rebased patches on upstream fixes --- src/qtbase-1-cherrypicks.patch | 341 +++++++++++++++++++++++++++-------------- src/qtbase.mk | 1 - 2 files changed, 225 insertions(+), 117 deletions(-) diff --git a/src/qtbase-1-cherrypicks.patch b/src/qtbase-1-cherrypicks.patch index f9d2de6..df09356 100644 --- a/src/qtbase-1-cherrypicks.patch +++ b/src/qtbase-1-cherrypicks.patch @@ -3,96 +3,10 @@ See index.html for further information. Contains ad hoc patches for cross building. -From 4274f3853fb812a168965a5addfb5413d06eef05 Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Tue, 26 Feb 2013 13:23:33 +0100 -Subject: [PATCH 1/6] 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 e73795bab32ae951f673be654d44e4b69d731998 Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Sat, 22 Dec 2012 17:45:34 +0100 -Subject: [PATCH 2/6] 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 dbb51e399120e7c4023e8ac760d971050ff43f33 Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Sat, 18 May 2013 23:07:46 +0200 -Subject: [PATCH 3/6] 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 ebb2503ccdcd9ab24216444b312d079b2c9cb298 Mon Sep 17 00:00:00 2001 +From 99dd0c414f1eb7142993febca7b722f6f8b43b8f Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Thu, 19 Sep 2013 08:53:30 +0200 -Subject: [PATCH 4/6] fix off-by-one error in NTLM proxy authentication +Subject: [PATCH 01/10] fix off-by-one error in NTLM proxy authentication Change-Id: Icee3fc939d81c726f8e4ed484a0c8685cf1f271c Task-number: QTBUG-27555 @@ -116,14 +30,16 @@ index 73991ab..0ea97f2 100644 1.8.1.4 -From 8966a716ba09eba506c6d75201d86e5f3c51ff56 Mon Sep 17 00:00:00 2001 -From: Tony Theodore -Date: Sat, 19 Oct 2013 22:12:13 +1100 -Subject: [PATCH 5/6] Fix FTBFS against latest mingw-w64 +From 09609302a0e34b1185ce8456c99196a75a85d5a4 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint +Date: Mon, 26 Aug 2013 11:52:47 +0200 +Subject: [PATCH 02/10] Windows: Fix compilation with MinGW-64, gcc 4.8.1 + +A definition for FILE_ID_128 was added. -https://codereview.qt-project.org/#change,63747 -0001-Windows-Fix-compilation-with-MinGW-64-gcc-4.8.1.patch -taken from https://aur.archlinux.org/packages/mi/mingw-w64-qt5-base +Change-Id: Ifdfe5da1b15a90afdf5cf09d92838a04b1cf5c19 +Reviewed-by: Kai Koehne +(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 @@ -156,50 +72,243 @@ index e8904b0..57231b5 100644 1.8.1.4 -From 2252f72f676c6cd4562f294561603e30661600b3 Mon Sep 17 00:00:00 2001 -From: Tony Theodore -Date: Sat, 19 Oct 2013 22:16:50 +1100 -Subject: [PATCH 6/6] Fix IEnumShellItems defined when - __IShellEnumItems_INTERFACE_DEFINED__ not defined +From e82966dbb4222149a40da45ad8816d622a0a949c Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Mon, 2 Sep 2013 10:20:37 +0200 +Subject: [PATCH 03/10] Fix compilation with latest Mingw-w64 headers -mingw-w64 FTBFS fix -qt5-mingw-w64-trunk-compatibility.patch -from https://aur.archlinux.org/packages/mi/mingw-w64-qt5-base/PKGBUILD +Fix compilation with e.g. mingw-builds 4.8.1-rev4 package. The Mingw-W64 +headers define SHSTOCKICONINFO only for vista and newer. -diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -index 33bed61..299de76 100644 ---- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -@@ -39,6 +39,9 @@ +Task-number: QTBUG-33225 +Change-Id: I30a62c642ae017c7eafb99b1efb06578fd61a12e +Reviewed-by: Friedemann Kleint +(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 @@ ** ****************************************************************************/ -+/* The structure FDAP which is used in this file is only available as of Windows Vista */ -+#define _WIN32_WINNT 0x0600 ++// 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" -@@ -232,7 +235,7 @@ DECLARE_INTERFACE_(IShellItemFilter, IUnknown) +-- +1.8.1.4 + + +From 562b005aaf1d6a1cd3f2ab4e1cae3a977b942c3f Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Thu, 19 Sep 2013 15:17:45 +0200 +Subject: [PATCH 04/10] Fix typo in define guards + +Needed to fix compilation with latest Mingw-w64 headers (version 3) + +Change-Id: I70c7ff3d833e15e99a915a2df83f04d03a968300 +Reviewed-by: Friedemann Kleint +(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__ -+#if !defined(__IShellEnumItems_INTERFACE_DEFINED__) && !defined(__IEnumShellItems_INTERFACE_DEFINED__) ++#ifndef __IEnumShellItems_INTERFACE_DEFINED__ DECLARE_INTERFACE_(IEnumShellItems, IUnknown) { STDMETHOD(Next)(THIS_ ULONG celt, IShellItem **rgelt, ULONG *pceltFetched) PURE; -@@ -1710,7 +1713,9 @@ static int CALLBACK xpFileDialogGetExistingDirCallbackProc(HWND hwnd, UINT uMsg, +-- +1.8.1.4 + + +From 28285c1c123f6673e433b5bc03ef2001f3bbbf0a Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Thu, 19 Sep 2013 15:18:41 +0200 +Subject: [PATCH 05/10] 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 +(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 +Date: Mon, 21 Oct 2013 12:54:45 +0200 +Subject: [PATCH 06/10] 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 +(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) && __MINGW64_VERSION_MAJOR < 3 ++ * 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 +Date: Wed, 23 Oct 2013 15:25:11 +0200 +Subject: [PATCH 07/10] Fix typo in check for MINGW_W64 version + +Got introduced in 9b187bcd6a256b53cc2fb85500 + +Change-Id: I1d713f8309d3d8568ea836cc1d29f9dca685ac01 +Reviewed-by: Jonathan Liu +Reviewed-by: Friedemann Kleint +(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 +Date: Tue, 26 Feb 2013 13:23:33 +0100 +Subject: [PATCH 08/10] 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 +Date: Sat, 22 Dec 2012 17:45:34 +0100 +Subject: [PATCH 09/10] 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 +Date: Sat, 18 May 2013 23:07:46 +0200 +Subject: [PATCH 10/10] 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 + diff --git a/src/qtbase.mk b/src/qtbase.mk index 087643d..5ae9e6a 100644 --- a/src/qtbase.mk +++ b/src/qtbase.mk @@ -26,7 +26,6 @@ define $(PKG)_BUILD -opensource \ -confirm-license \ -xplatform win32-g++ \ - -D_WIN32_WINNT=0x0600 \ -device-option CROSS_COMPILE=${TARGET}- \ -device-option PKG_CONFIG='${TARGET}-pkg-config' \ -force-pkg-config \ -- cgit v0.12