From fd5d407809d5b99bd67cd91652550553ee6f156c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= Date: Sat, 21 Jun 2025 15:57:22 +0100 Subject: [PATCH] qt5-static: update to 5.15.17 Fixes #23792 --- .../0015-fix-build-with-cygwin-tools.patch | 22 +++++ ...-qt-5.3.0-use-external-angle-library.patch | 71 --------------- ...0023-qt-5.3.0-env-set-external-angle.patch | 53 ----------- ...qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch | 21 ----- ...-Revert-Revert-fix-NTFS-mount-points.patch | 91 ------------------- mingw-w64-qt5-static/PKGBUILD | 11 +-- 6 files changed, 27 insertions(+), 242 deletions(-) create mode 100644 mingw-w64-qt5-static/0015-fix-build-with-cygwin-tools.patch delete mode 100644 mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch delete mode 100644 mingw-w64-qt5-static/0023-qt-5.3.0-env-set-external-angle.patch delete mode 100644 mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch delete mode 100644 mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch diff --git a/mingw-w64-qt5-static/0015-fix-build-with-cygwin-tools.patch b/mingw-w64-qt5-static/0015-fix-build-with-cygwin-tools.patch new file mode 100644 index 0000000000..6ac64ee144 --- /dev/null +++ b/mingw-w64-qt5-static/0015-fix-build-with-cygwin-tools.patch @@ -0,0 +1,22 @@ +--- a/qtbase/bin/syncqt.pl ++++ b/qtbase/bin/syncqt.pl +@@ -54,7 +54,7 @@ + use warnings; + use English qw(-no_match_vars ); + +-my $normalizePath_fixDrive = ($^O eq "msys" ? 1 : 0); ++my $normalizePath_fixDrive = ($^O eq "cygwin" ? 1 : 0); + + ###################################################################### + # Syntax: normalizePath(\$path) +--- a/qtbase/configure ++++ b/qtbase/configure +@@ -305,7 +305,7 @@ + if [ -d /System/Library/Frameworks/Cocoa.framework ]; then + BUILD_ON_MAC=yes + fi +-if [ "$OSTYPE" = "msys" ]; then ++if [ "$OSTYPE" = "cygwin" ]; then + relpath=`(cd "$relpath"; pwd -W)` + outpath=`pwd -W` + fi diff --git a/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch b/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch deleted file mode 100644 index a93048b96a..0000000000 --- a/mingw-w64-qt5-static/0020-qt-5.3.0-use-external-angle-library.patch +++ /dev/null @@ -1,71 +0,0 @@ ---- a/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-05 09:24:36.000000000 -0700 -+++ b/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in 2014-12-11 10:19:51.599972209 -0700 -@@ -2,9 +2,9 @@ - !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE) - - !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) --set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\") -+set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\") - !!ELSE --set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\") -+set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\") - !!ENDIF - - _qt5_Gui_check_file_exists(${Qt5Gui_EGL_INCLUDE_DIRS}) ---- a/qtbase/src/gui/gui.pro 2014-12-05 09:24:35.000000000 -0700 -+++ b/qtbase/src/gui/gui.pro 2014-12-11 10:22:37.644366784 -0700 -@@ -18,12 +18,6 @@ MODULE_PLUGIN_TYPES = \ - imageformats \ - egldeviceintegrations - --# This is here only because the platform plugin is no module, obviously. --qtConfig(angle) { -- MODULE_AUX_INCLUDES = \ -- \$\$QT_MODULE_INCLUDE_BASE/QtANGLE --} -- - # Code coverage with TestCocoon - # The following is required as extra compilers use $$QMAKE_CXX instead of $(CXX). - # Without this, testcocoon.prf is read only after $$QMAKE_CXX is used by the -@@ -35,6 +29,8 @@ testcocoon { - osx: LIBS_PRIVATE += -framework AppKit - darwin: LIBS_PRIVATE += -framework CoreGraphics - -+win32:qtConfig(angle): LIBS_PRIVATE += -lGLESv2 -+ - CONFIG += simd optimize_full - - include(accessible/accessible.pri) ---- a/qtbase/src/opengl/opengl.pro 2014-12-05 09:24:31.000000000 -0700 -+++ b/qtbase/src/opengl/opengl.pro 2014-12-11 10:15:45.884805707 -0700 -@@ -10,6 +10,7 @@ QMAKE_DOCS = $$PWD/doc/qtopengl.qdocconf - - qtConfig(opengl): CONFIG += opengl - qtConfig(opengles2): CONFIG += opengles2 -+win32:qtConfig(angle): LIBS_PRIVATE += -lGLESv2 - - HEADERS += qgl.h \ - qgl_p.h \ ---- a/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-05 09:24:37.000000000 -0700 -+++ b/qtbase/src/plugins/platforms/windows/windows.pri 2014-12-11 10:13:45.228261276 -0700 -@@ -4,6 +4,7 @@ LIBS += -lole32 -luser32 -lwinspool -limm32 -lwinmm -loleaut32 - QT_FOR_CONFIG += gui - - qtConfig(opengl):!qtConfig(opengles2):!qtConfig(dynamicgl): LIBS *= -lopengl32 -+qtConfig(angle):LIBS += -lGLESv2 -lEGL - - mingw: LIBS *= -luuid - # For the dialog helpers: ---- a/qtbase/src/src.pro 2014-12-05 09:24:31.000000000 -0700 -+++ b/qtbase/src/src.pro 2014-12-11 10:06:14.882845813 -0700 -@@ -199,10 +199,6 @@ qtConfig(gui) { - SUBDIRS += src_3rdparty_harfbuzzng - src_gui.depends += src_3rdparty_harfbuzzng - } -- qtConfig(angle) { -- SUBDIRS += src_angle -- src_gui.depends += src_angle -- } - qtConfig(png):!qtConfig(system-png) { - SUBDIRS += src_3rdparty_libpng - src_3rdparty_freetype.depends += src_3rdparty_libpng diff --git a/mingw-w64-qt5-static/0023-qt-5.3.0-env-set-external-angle.patch b/mingw-w64-qt5-static/0023-qt-5.3.0-env-set-external-angle.patch deleted file mode 100644 index 082c4c8d0a..0000000000 --- a/mingw-w64-qt5-static/0023-qt-5.3.0-env-set-external-angle.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- x86_64/qtbase/tools/configure/configureapp.cpp.orig 2014-03-23 03:12:04.000000000 +0400 -+++ x86_64/qtbase/tools/configure/configureapp.cpp 2014-04-10 22:56:50.341400000 +0400 -@@ -2077,6 +2077,8 @@ - - bool Configure::checkAngleAvailability(QString *errorMessage /* = 0 */) const - { -+ const QByteArray externalAngle = qgetenv("EXTERNAL_ANGLE"); -+ if (externalAngle.isEmpty()) { - // Check for Direct X SDK (include lib and direct shader compiler 'fxc'). - // Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the - // DXSDK_DIR variable. Starting with Windows Kit 8, it is included -@@ -2120,6 +2122,7 @@ - *errorMessage = QString::fromLatin1("The shader compiler '%1' could not be found.").arg(fxcBinary); - return false; - } -+ } - return true; - } - ---- x86_64/qtbase/tools/configure/environment.cpp.orig 2014-04-10 22:49:11.171000000 +0400 -+++ x86_64/qtbase/tools/configure/environment.cpp 2014-04-10 22:57:20.901800000 +0400 -@@ -610,11 +610,14 @@ - // MinGW: Although gcc doesn't care about INCLUDE, qmake automatically adds it via -I - headerPaths += splitPathList(QString::fromLocal8Bit(getenv("INCLUDE"))); - -+ const QByteArray externalAngle = qgetenv("EXTERNAL_ANGLE"); -+ if (externalAngle.isEmpty()) { - // Add Direct X SDK for ANGLE - const QString directXSdk = detectDirectXSdk(); - if (!directXSdk.isEmpty()) // Add Direct X SDK for ANGLE - headerPaths += directXSdk + QLatin1String("/include"); - return headerPaths; -+ } - } - - QStringList Environment::libraryPaths(Compiler compiler) -@@ -626,6 +629,8 @@ - // MinGW: Although gcc doesn't care about LIB, qmake automatically adds it via -L - libraryPaths += splitPathList(QString::fromLocal8Bit(qgetenv("LIB"))); - -+ const QByteArray externalAngle = qgetenv("EXTERNAL_ANGLE"); -+ if (externalAngle.isEmpty()) { - // Add Direct X SDK for ANGLE - const QString directXSdk = detectDirectXSdk(); - if (!directXSdk.isEmpty()) { -@@ -635,6 +640,7 @@ - libraryPaths += directXSdk + QLatin1String("/lib/x86"); - #endif - } -+ } - return libraryPaths; - } - diff --git a/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch b/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch deleted file mode 100644 index d025055067..0000000000 --- a/mingw-w64-qt5-static/0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- x86_64/qtlocation/src/3rdparty/icu_dependency.pri.orig 2014-04-20 21:24:31.107015700 +0100 -+++ x86_64/qtlocation/src/3rdparty/icu_dependency.pri 2014-04-20 21:24:25.573813000 +0100 -@@ -2,11 +2,17 @@ - CONFIG(static, static|shared) { - CONFIG(debug, debug|release) { - LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" - } else { - LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt - } - } else { -- LIBS_PRIVATE += -licuin -licuuc -licudt -+ CONFIG(debug, debug|release) { -+ LIBS_PRIVATE += -licuind -licuucd -licudtd -+ DEFINES += "U_LIB_SUFFIX_C_NAME=d" -+ } else { -+ LIBS_PRIVATE += -licuin -licuuc -licudt -+ } - } - } else { - LIBS_PRIVATE += -licui18n -licuuc -licudata diff --git a/mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch b/mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch deleted file mode 100644 index c47319d68b..0000000000 --- a/mingw-w64-qt5-static/0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -Naur qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemengine_win.cpp qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemengine_win.cpp ---- qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemengine_win.cpp 2019-06-12 23:59:14.000000000 +0300 -+++ qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemengine_win.cpp 2019-06-15 15:56:30.187254700 +0300 -@@ -936,9 +936,10 @@ - int errorCode = GetLastError(); - if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - WIN32_FIND_DATA findData; -- if (getFindData(fname.nativeFilePath(), findData) -+ const QString nativeFilePath = fname.nativeFilePath(); -+ if (getFindData(nativeFilePath, findData) - && findData.dwFileAttributes != INVALID_FILE_ATTRIBUTES) { -- data.fillFromFindData(findData, true, fname.isDriveRoot()); -+ data.fillFromFindData(findData, true, fname.isDriveRoot(), nativeFilePath); - filledData = true; - } - } -@@ -1053,8 +1054,9 @@ - data.knownFlagsMask |= QFileSystemMetaData::LinkType; - if (data.fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { - WIN32_FIND_DATA findData; -- if (getFindData(fname.nativeFilePath(), findData)) -- data.fillFromFindData(findData, true); -+ const QString nativeFilePath = fname.nativeFilePath(); -+ if (getFindData(nativeFilePath, findData)) -+ data.fillFromFindData(findData, true, false, nativeFilePath); - } - } - data.knownFlagsMask |= what; -diff -Naur qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemiterator_win.cpp qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemiterator_win.cpp ---- qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemiterator_win.cpp 2019-06-12 23:59:14.000000000 +0300 -+++ qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemiterator_win.cpp 2019-06-15 15:56:30.187254700 +0300 -@@ -133,7 +133,7 @@ - fileEntry = QFileSystemEntry(dirPath + fileName); - metaData = QFileSystemMetaData(); - if (!fileName.endsWith(QLatin1String(".lnk"))) { -- metaData.fillFromFindData(findData, true); -+ metaData.fillFromFindData(findData, true, false, fileEntry.nativeFilePath()); - } - return true; - } -diff -Naur qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemmetadata_p.h qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemmetadata_p.h ---- qt-everywhere-src-5.12.4-orig/qtbase/src/corelib/io/qfilesystemmetadata_p.h 2019-06-12 23:59:14.000000000 +0300 -+++ qt-everywhere-src-5.12.4/qtbase/src/corelib/io/qfilesystemmetadata_p.h 2019-06-15 15:56:30.187254700 +0300 -@@ -231,7 +231,7 @@ - - #if defined(Q_OS_WIN) - inline void fillFromFileAttribute(DWORD fileAttribute, bool isDriveRoot = false); -- inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false); -+ inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false, const QString &nativeFullFilePath = QString()); - # ifndef Q_OS_WINRT - inline void fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo); - # endif -@@ -339,7 +339,7 @@ - knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; - } - --inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) -+inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot, const QString &nativeFullFilePath) - { - fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); - birthTime_ = findData.ftCreationTime; -@@ -359,14 +359,21 @@ - if (setLinkType) { - knownFlagsMask |= LinkType; - entryFlags &= ~LinkType; -- if (fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { -- if (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK) { -- entryFlags |= LinkType; --#if defined(IO_REPARSE_TAG_MOUNT_POINT) -- } else if ((fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) -- && (findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { -- entryFlags |= JunctionType; --#endif -+ if (fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { -+ if (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK) { -+ entryFlags |= LinkType; -+ } else if (findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) { -+ // Junctions and mount points are implemented as NTFS reparse points. -+ // But mount points cannot be treated as symlinks because they might -+ // not have a link target. -+ wchar_t buf[50]; -+ QString path = nativeFullFilePath; -+ if (!path.endsWith(QLatin1Char('\\'))) -+ path.append(QLatin1Char('\\')); -+ BOOL isMountPoint = GetVolumeNameForVolumeMountPoint(reinterpret_cast(path.utf16()), buf, sizeof(buf) / sizeof(wchar_t)); -+ if (!isMountPoint) -+ entryFlags |= LinkType; -+ } - } - } - } diff --git a/mingw-w64-qt5-static/PKGBUILD b/mingw-w64-qt5-static/PKGBUILD index da0da4908d..45d4e0e5c5 100644 --- a/mingw-w64-qt5-static/PKGBUILD +++ b/mingw-w64-qt5-static/PKGBUILD @@ -5,7 +5,7 @@ _realname=qt5-static pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.15.16 +pkgver=5.15.17 pkgrel=1 pkgdesc="A cross-platform application and UI framework (static) (mingw-w64)" arch=('any') @@ -50,16 +50,15 @@ source=(https://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/singl 0012-mingw-add-extra-flags.patch 0013-qtbase-use-system-libs.patch 0014-qtimageformats-use-system-libs.patch + 0015-fix-build-with-cygwin-tools.patch 0016-qt-5.8.0-win32-g++-use-qpa-genericunixfontdatabase.patch 0017-qt-5.3.0-fix-examples-building.patch - 0024-qt-5.3.0-icu-add-U_LIB_SUFFIX_C_NAME.patch 0025-qt-5.8.0-force-using-make-on-msys.patch 0028-qt-5.8.0-Revert-untangle-use-of-system-vs.-shell-path-list-se.patch 0029-qt-5.8.0-Revert-fix-quoting-and-path-separators-in-qtPrepareT.patch 0030-qt-5.3.1-workaround-ansidecl-h-PTR-define-conflict.patch 0035-qt-5.3.2-dont-add-resource-files-to-qmake-libs.patch 0036-qt-5.3.2-win32-qt5-static-cmake-link-ws2_32-and--static.patch - 0046-qt-5.4.1-Revert-Revert-fix-NTFS-mount-points.patch 0048-qt-5.4.2-win32-Avoid-platformNativeInterface-segfaults-with-minimal-platform.patch 0049-qt-5.8.0-win32-do-not-use-fontconfig.patch 0051-qt-5.9.1-disable-qtlocation-mapboxgl-plugin.patch @@ -82,7 +81,7 @@ source=(https://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/singl 0403-qtactiveqt-tools-avoid-race-condition.patch 0411-javascriptcore-disable-deprecated-warnings.patch 0412-jitstubs-underscore-symbol-name-for-x86.patch) -sha256sums=('efa99827027782974356aceff8a52bd3d2a8a93a54dd0db4cca41b5e35f1041c' +sha256sums=('85eb566333d6ba59be3a97c9445a6e52f2af1b52fc3c54b8a2e7f9ea040a7de4' '884b32f0e2e1bb110330a921b69443379a7be98c42f13754f9c5f56c040ba3b7' '617e6fa85a92353d0073425d37cd5d90d92cb7f906d66dd2d0df576122d091a4' '27ce2161b5dbea2fcce6b15948ab722a71036d056420854f6554969f683583bb' @@ -98,16 +97,15 @@ sha256sums=('efa99827027782974356aceff8a52bd3d2a8a93a54dd0db4cca41b5e35f1041c' '6e57b29ef71476f0eeb0fde9ac6635a1e4dcf66e0b83a34baf38c9df4f4429d2' 'b4135a287752a983183b966785c04c46c018055d43b8a84ef9f6e72c3406a766' '91d65c71a1c809b23dc651981eee64a8d1fe9c8738f4c4756e5dca87e1c3ad4a' + '9e81d5a387b4a436c6728c2dde9d9102cf18d89dfd1b14f64cb39e798621a568' 'b31929c78f9906756a5e1bdf9a796541865c474aaa1b3eefea1a3f1d7c8d94ca' 'd8a476be7e55e8bb9362868073dc9e7937431e68b9578c0a0ed103cf1ebc8c01' - 'd7c228df3cc680793a6c858e1fac01092c0877071c075804b7e93f6b3a481eae' '97fcd6bd58ff8b8d735a6381b607bb3b4b351d1d07be1bbc18b97155dcbb501d' 'f80ce415f25f0aa4ead2efe369b41efe35d9848d4d36d8dbf3831e48dbd6e506' '19566c38bd50581acaa6a9f46f0e25c41fdfc8b0b42269126e4d3a9b83e2f224' 'ddaa067d144f5788ab7a3ed0dfc426d702c13de9c35f04eaaf38d642be4934d4' 'bfb9ff161442683c88e137ca4ac4f9aabe44742d8204be565ccdaac6c59fcc0d' 'f008164ef2a224b8c52736bab53f1aeec72d610928f03cce57f632824dfdd615' - 'a09ba083957a2b9020b5e17e57db98c3f41390db26d85b310798597fc2a4d34f' '42724bd154ed98c612d19a7daee2b5028270ef6dbfe7f35d5f97c8d0605f9fe6' '3dc4d7c4fed8fedd726211edbfe13f4d78247d3ab2f789f3ce2a8e43e59a7c5b' 'c84cb5ba4243413232bc693fb0f54c0283bf0e496e6790a2698f226f80275a61' @@ -163,6 +161,7 @@ prepare() { 0012-mingw-add-extra-flags.patch \ 0013-qtbase-use-system-libs.patch \ 0014-qtimageformats-use-system-libs.patch \ + 0015-fix-build-with-cygwin-tools.patch \ 0016-qt-5.8.0-win32-g++-use-qpa-genericunixfontdatabase.patch \ 0017-qt-5.3.0-fix-examples-building.patch \ 0025-qt-5.8.0-force-using-make-on-msys.patch