about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/qt-5
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5')
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/fetch.sh3
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch30
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0015-qtbase-tbd-frameworks.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch21
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/srcs.nix323
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh3
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch116
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0013-define-kiosurfacesuccess.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/qtbase-sdk-10.12-mac.patch77
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch21
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh3
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch118
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0013-define-kiosurfacesuccess.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch47
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch40
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch27
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch192
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch26
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch77
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/qtbase-sdk-10.12-mac.patch77
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix336
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh13
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix1
34 files changed, 1115 insertions, 674 deletions
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
index fcceb6d6cf2b..87a88ddf9b0d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -51,12 +51,15 @@ let
 
   patches = {
     qtbase =
-      optionals stdenv.isDarwin [
+      [
         ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
         ./qtbase.patch.d/0002-qtbase-mac.patch
         ./qtbase.patch.d/0013-define-kiosurfacesuccess.patch
-      ]
-      ++ [
+
+        # Patch framework detection to support X.framework/X.tbd,
+        # extending the current support for X.framework/X.
+        ./qtbase.patch.d/0015-qtbase-tbd-frameworks.patch
+
         ./qtbase.patch.d/0003-qtbase-mkspecs.patch
         ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
         ./qtbase.patch.d/0005-qtbase-cmake.patch
@@ -71,21 +74,9 @@ let
         # Ensure -I${includedir} is added to Cflags in pkg-config files.
         # See https://github.com/NixOS/nixpkgs/issues/52457
         ./qtbase.patch.d/0014-qtbase-pkg-config.patch
-
-        # https://bugreports.qt.io/browse/QTBUG-81715
-        # remove after updating to qt > 5.12.7
-        (fetchpatch {
-          name = "fix-qt5_make_output_file-cmake-macro.patch";
-          url = "https://code.qt.io/cgit/qt/qtbase.git/patch/?id=8a3fde00bf53d99e9e4853e8ab97b0e1bcf74915";
-          sha256 = "1gpcbdpyazdxnmldvhsf3pfwr2gjvi08x3j6rxf543rq01bp6cpx";
-        })
-        (fetchpatch {
-          name = "QTBUG-78937.patch";
-          url = "https://code.qt.io/cgit/qt/qtbase.git/patch/?id=67a9c600ad14ee44501a6df3509daa8234b97606";
-          sha256 = "1jiky1w9j8rka78r4q0yabb8w2l5j6csdjysynz7gs1ry4xjfdxd";
-        })
       ];
     qtdeclarative = [ ./qtdeclarative.patch ];
+    qtlocation = [ ./qtlocation-gcc-9.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
     qtwebengine = [
@@ -97,7 +88,16 @@ let
         url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qtbug-77037-workaround.patch?h=packages/qt5-webengine&id=fc77d6b3d5ec74e421b58f199efceb2593cbf951";
         sha256 = "1gv733qfdn9746nbqqxzyjx4ijjqkkb7zb71nxax49nna5bri3am";
       })
-    ] ++ optionals stdenv.isDarwin [
+
+      # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
+      (fetchpatch {
+        name = "qtwebengine-bison-3.7-build.patch";
+        url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
+        sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
+        stripLen = 1;
+        extraPrefix = "src/3rdparty/";
+      })
+
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-darwin-fix-failed-static-assertion.patch
     ];
@@ -108,7 +108,7 @@ let
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
       ./qtwebkit.patch
-    ] ++ optionals stdenv.isDarwin [
+
       ./qtwebkit-darwin-no-readline.patch
       ./qtwebkit-darwin-no-qos-classes.patch
     ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/fetch.sh b/nixpkgs/pkgs/development/libraries/qt-5/5.12/fetch.sh
index 016b4985ed1e..e93c9acd3f05 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.12/5.12.7/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.12/5.12.9/submodules/ \
+            -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
index bb535b8a0c0e..6646e1e0b2be 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -1,18 +1,5 @@
-From 361a9395704ca1ee170a8bb3823ba860293eecee Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Tue, 17 Sep 2019 05:34:00 -0500
-Subject: [PATCH 01/12] qtbase-mkspecs-mac
-
----
- mkspecs/common/mac.conf               |   2 +-
- mkspecs/features/mac/default_post.prf | 202 ----------------------------------
- mkspecs/features/mac/default_pre.prf  |  58 ----------
- mkspecs/features/mac/sdk.mk           |  25 -----
- mkspecs/features/mac/sdk.prf          |  61 ----------
- 5 files changed, 1 insertion(+), 347 deletions(-)
-
 diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
-index b77494ec9b..470c38e772 100644
+index b77494ec..470c38e7 100644
 --- a/mkspecs/common/mac.conf
 +++ b/mkspecs/common/mac.conf
 @@ -24,7 +24,7 @@ QMAKE_INCDIR_OPENGL     = \
@@ -25,7 +12,7 @@ index b77494ec9b..470c38e772 100644
  
  QMAKE_LFLAGS_REL_RPATH  =
 diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
-index 993f4d56a9..b80ec1e801 100644
+index d052808c..b80ec1e8 100644
 --- a/mkspecs/features/mac/default_post.prf
 +++ b/mkspecs/features/mac/default_post.prf
 @@ -68,208 +68,6 @@ qt {
@@ -161,7 +148,7 @@ index 993f4d56a9..b80ec1e801 100644
 -                -isysroot$$xcodeSDKInfo(Path, $$sdk)
 -            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
 -                -Xarch_$${arch} \
--                -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
 -
 -            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
 -            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
@@ -182,7 +169,7 @@ index 993f4d56a9..b80ec1e801 100644
 -        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
 -        QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
 -        QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
--        QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag
+-        QMAKE_LFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
 -    }
 -
 -    # Enable precompiled headers for multiple architectures
@@ -238,7 +225,7 @@ index 993f4d56a9..b80ec1e801 100644
      generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode \"$(EXPORT__PRO_FILE_)\" $$QMAKE_ARGS
      generate_xcode_project.target = xcodeproj
 diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
-index e3534561a5..3b01424e67 100644
+index e3534561..3b01424e 100644
 --- a/mkspecs/features/mac/default_pre.prf
 +++ b/mkspecs/features/mac/default_pre.prf
 @@ -1,60 +1,2 @@
@@ -303,7 +290,7 @@ index e3534561a5..3b01424e67 100644
 -xcode_copy_phase_strip_setting.value = NO
 -QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
 diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
-index c40f58c987..e69de29bb2 100644
+index c40f58c9..e69de29b 100644
 --- a/mkspecs/features/mac/sdk.mk
 +++ b/mkspecs/features/mac/sdk.mk
 @@ -1,25 +0,0 @@
@@ -333,7 +320,7 @@ index c40f58c987..e69de29bb2 100644
 -    endif
 -endif
 diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
-index 3a9c2778bb..e69de29bb2 100644
+index 3a9c2778..e69de29b 100644
 --- a/mkspecs/features/mac/sdk.prf
 +++ b/mkspecs/features/mac/sdk.prf
 @@ -1,61 +0,0 @@
@@ -398,6 +385,3 @@ index 3a9c2778bb..e69de29bb2 100644
 -    $$tool = $$sysrooted $$member(value, 1, -1)
 -    cache($$tool_variable, set stash, $$tool)
 -}
--- 
-2.23.GIT
-
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0015-qtbase-tbd-frameworks.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0015-qtbase-tbd-frameworks.patch
new file mode 100644
index 000000000000..8a5939978a6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0015-qtbase-tbd-frameworks.patch
@@ -0,0 +1,15 @@
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..615bfed124 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -119,6 +119,10 @@ macro(_qt5gui_find_extra_libs Name Libs LibDir IncDirs)
+             if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
+                 set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
+             endif()
++            set(Qt5Gui_${_cmake_lib_name}_LIBRARY "${Qt5Gui_${_cmake_lib_name}_LIBRARY}/${_lib}.tbd")
++            if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
++                set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
++            endif()
+ !!ENDIF
+             if (NOT Qt5Gui_${_cmake_lib_name}_LIBRARY)
+                 # The above find_library call doesn\'t work for finding
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch
new file mode 100644
index 000000000000..1791313e5603
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch
@@ -0,0 +1,21 @@
+diff --git a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+index d475c38..c1710a6 100644
+--- a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
++++ b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+@@ -5,6 +5,7 @@
+ #include <unicode/ushape.h>
+ 
+ #include <memory>
++#include <stdexcept>
+ 
+ namespace mbgl {
+ 
+diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+index 97bfe91..56d3e17 100644
+--- a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
++++ b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+@@ -1,3 +1,4 @@
++#include <cstdint>
+ #include <mbgl/util/convert.hpp>
+ 
+ namespace mbgl {
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
index 8ed3fe59a5a2..cd2343e42ca3 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
@@ -1,5 +1,5 @@
 diff --git a/configure.pri b/configure.pri
-index 897bea54..6f834c20 100644
+index 897bea540..6f834c202 100644
 --- a/configure.pri
 +++ b/configure.pri
 @@ -269,7 +269,7 @@ defineReplace(webEngineGetMacOSVersion) {
@@ -12,7 +12,7 @@ index 897bea54..6f834c20 100644
  }
  
 diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
-index 35eb6b89..7eed640a 100644
+index 35eb6b89c..7eed640a5 100644
 --- a/mkspecs/features/platform.prf
 +++ b/mkspecs/features/platform.prf
 @@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
@@ -43,10 +43,10 @@ index 35eb6b89..7eed640a 100644
      isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) {
          skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.")
 diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
-index 4426901c..3aa6057e 100644
+index 7b77a8bf7..0e1284ee4 100644
 --- a/src/core/config/mac_osx.pri
 +++ b/src/core/config/mac_osx.pri
-@@ -5,16 +5,16 @@ load(functions)
+@@ -5,7 +5,7 @@ load(functions)
  # otherwise query for it.
  QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
  isEmpty(QMAKE_MAC_SDK_VERSION) {
@@ -55,17 +55,15 @@ index 4426901c..3aa6057e 100644
       isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
  }
  
+@@ -14,11 +14,6 @@ isEmpty(QMAKE_MAC_SDK_VERSION) {
+ QMAKE_MAC_SDK_VERSION_MAJOR_MINOR = $$section(QMAKE_MAC_SDK_VERSION, ".", 0, 1)
+ 
  QMAKE_CLANG_DIR = "/usr"
 -QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
 -!isEmpty(QMAKE_CLANG_PATH) {
 -    clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
 -    exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
 -}
-+# QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
-+# !isEmpty(QMAKE_CLANG_PATH) {
-+#     clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
-+#     exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
-+# }
  
  QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++"
  message("Using clang++ from $${QMAKE_CLANG_PATH}")
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/srcs.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/srcs.nix
index 293d017c2dc7..f2ed6d13714f 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/srcs.nix
@@ -1,325 +1,326 @@
-# DO NOT EDIT! This file is generated automatically by fetch-kde-qt.sh
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.12
 { fetchurl, mirror }:
 
 {
   qt3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qt3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2030de3dc93fd4062f677f61938229af9cd7aa4c3d2932cdda2ccb663d681126";
-      name = "qt3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qt3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "6fcde8c99bc5d09a5d2de99cab10c6f662d7db48139e6d5a3904fa0c580070ad";
+      name = "qt3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtactiveqt-everywhere-src-5.12.7.tar.xz";
-      sha256 = "302ce1e74dae8ead602ac663e208e6c9b98bdf9a2b7795de4198a28eba2d895d";
-      name = "qtactiveqt-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtactiveqt-everywhere-src-5.12.9.tar.xz";
+      sha256 = "e9df2dacfa4f93b42753066d14d3c504a30b259c177b366e32e6119f714f6527";
+      name = "qtactiveqt-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtandroidextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtandroidextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "a5acc927bd46ed87627e2ae0f0bfc199189d383a3e17c2f34b8c34ea57b2aea1";
-      name = "qtandroidextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtandroidextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d6ab58d382feb1d79b7f28033eaa15ecab0c1f97c760fad50f20608189ab1a95";
+      name = "qtandroidextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtbase = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtbase-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b18939cb25d90aef8721fb12ec34c3632d3490ced958e41f6c7a52064643665d";
-      name = "qtbase-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtbase-everywhere-src-5.12.9.tar.xz";
+      sha256 = "331dafdd0f3e8623b51bd0da2266e7e7c53aa8e9dc28a8eb6f0b22609c5d337e";
+      name = "qtbase-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtcanvas3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtcanvas3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b63a513a2ee11548b122e0fd640b1fa22d3eb83cdc51ddfdf3b97c2ecd0d0c50";
-      name = "qtcanvas3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtcanvas3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "351b105507b97e61eef17a5ce8a96fe090a523101e41c20ea373266203dd3ca0";
+      name = "qtcanvas3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtcharts = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtcharts-everywhere-src-5.12.7.tar.xz";
-      sha256 = "434065526d0b1d8921e96cc1827b1a3579e073b930fe536455c4c1da2f15cf5f";
-      name = "qtcharts-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtcharts-everywhere-src-5.12.9.tar.xz";
+      sha256 = "9fc2a64a96b73746389c257684af557e70c5360bead53d61d059f968efdc5b04";
+      name = "qtcharts-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtconnectivity-everywhere-src-5.12.7.tar.xz";
-      sha256 = "647148b9b1a0d3e54f788b66797b81bb87434faf6fb12ac481f9165eda0d071a";
-      name = "qtconnectivity-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtconnectivity-everywhere-src-5.12.9.tar.xz";
+      sha256 = "e5457ebc22059954bba6a08b03fd1e6f30e4c8f3146636065bf12c2e6044f41c";
+      name = "qtconnectivity-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdatavis3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "07ff5713cfcdf073681d905912e8d871e4451508494c789df805eb241ed98b27";
-      name = "qtdatavis3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdatavis3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "0cd4f7535bf26e4e59f89fac991fc8a400bd6193680578f31693235f185f4562";
+      name = "qtdatavis3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdeclarative-everywhere-src-5.12.7.tar.xz";
-      sha256 = "5cdc05a035f240ab73b6b37dd3831c1350cd80e5799da47929974085f6eae9bd";
-      name = "qtdeclarative-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdeclarative-everywhere-src-5.12.9.tar.xz";
+      sha256 = "c11ae68aedcdea7e721ec22a95265ac91b5e128a5c12d3b61b5b732d3a02be80";
+      name = "qtdeclarative-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdoc = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdoc-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6c07918cec8494ea05a42234d8f281a2958de7380458f3fb5a189949ce1233e9";
-      name = "qtdoc-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdoc-everywhere-src-5.12.9.tar.xz";
+      sha256 = "a9d751af85a07bdfc2a30e8f1b08aa249547a8100801f286e77280a9c9ede624";
+      name = "qtdoc-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtgamepad = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtgamepad-everywhere-src-5.12.7.tar.xz";
-      sha256 = "07638c42be94be1e5e622b020c6192341b5bb87be34d7b38f2899672d83a1e94";
-      name = "qtgamepad-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtgamepad-everywhere-src-5.12.9.tar.xz";
+      sha256 = "da3333af6b9dccd7dd3a25b01de65e317fe4b70b9d39eeb84e01c232063211fe";
+      name = "qtgamepad-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtgraphicaleffects = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtgraphicaleffects-everywhere-src-5.12.7.tar.xz";
-      sha256 = "02f0328420c623da8f9ae949fec01e99ba84213dd2ad559cb00c204502bbcace";
-      name = "qtgraphicaleffects-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtgraphicaleffects-everywhere-src-5.12.9.tar.xz";
+      sha256 = "1eb4b913d5cb6d0b46a231288b9717f4785fbd212936e98a8b2a8c9024e3a8bf";
+      name = "qtgraphicaleffects-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtimageformats = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtimageformats-everywhere-src-5.12.7.tar.xz";
-      sha256 = "9bd19ee24fb85f249d01c78e637c95377dd738feb61da0deeee6b770fa62f70b";
-      name = "qtimageformats-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtimageformats-everywhere-src-5.12.9.tar.xz";
+      sha256 = "cd8193698f830cce30959564c191e7bb698877aca3a263c652b4a23907c72b6a";
+      name = "qtimageformats-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtlocation = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtlocation-everywhere-src-5.12.7.tar.xz";
-      sha256 = "d1e905b80befda3c9aaad92ea984e6dbf722568b5c91e8d15b027bc5bc22781f";
-      name = "qtlocation-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtlocation-everywhere-src-5.12.9.tar.xz";
+      sha256 = "be31870104af2910690850c4e28bab3ccb76f1aa8deef1e870bcbc6b276aa2c1";
+      name = "qtlocation-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtmacextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtmacextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "265b5607664927e1c92af3abc4b034244f37abd83db1f0a8f22f6952f7d6abb8";
-      name = "qtmacextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtmacextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "5458f3e13c37eb8bff8588b29703fb33b61d5ea19989c56c99d36f221e269f35";
+      name = "qtmacextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtmultimedia-everywhere-src-5.12.7.tar.xz";
-      sha256 = "28bdaa81371f922223775ae5171c4d589a2c07f255abbe5ccf130ecbbdb4db1d";
-      name = "qtmultimedia-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtmultimedia-everywhere-src-5.12.9.tar.xz";
+      sha256 = "59a2f2418cefe030094687dff0846fb8957abbc0e060501a4fee40cb4a52838c";
+      name = "qtmultimedia-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtnetworkauth-everywhere-src-5.12.7.tar.xz";
-      sha256 = "cbfb7c71a25e74b92b927a5aeae2d099e4142968424a0fcebc1a52fa4fb4576b";
-      name = "qtnetworkauth-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtnetworkauth-everywhere-src-5.12.9.tar.xz";
+      sha256 = "a0979689eda667e299fd9cf5a8859bd9c37eabc0a6d9738103a1143035baf0e4";
+      name = "qtnetworkauth-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtpurchasing = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtpurchasing-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6f7ecb1e6b6d290b268344ddb031bb7114cd36139c76323732d12661eeb15a76";
-      name = "qtpurchasing-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtpurchasing-everywhere-src-5.12.9.tar.xz";
+      sha256 = "565587811b3cfd201907d3fcbf7120783de32a4d1d3c59a9efff3720cf0af3e5";
+      name = "qtpurchasing-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtquickcontrols = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtquickcontrols-everywhere-src-5.12.7.tar.xz";
-      sha256 = "1038bbc76bba53f9634f40cd9c8ebf0ed8ae82e791f727b228bd81bdcf1859e5";
-      name = "qtquickcontrols-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtquickcontrols-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d89084ebccf155f4c966d4a2a188e6e870c37535a7751740960f5c38088373f6";
+      name = "qtquickcontrols-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtquickcontrols2 = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtquickcontrols2-everywhere-src-5.12.7.tar.xz";
-      sha256 = "3a9526e5ad01edbfb796a6631983c391ea1b7e22ae6e07840048156a9e92a237";
-      name = "qtquickcontrols2-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtquickcontrols2-everywhere-src-5.12.9.tar.xz";
+      sha256 = "ea1c2864630c6ba2540228f81ec5b582619d5ce9e4cb98e91109b4181a65a31d";
+      name = "qtquickcontrols2-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtremoteobjects-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6d6aaec4e9c140c027b0badaabc6322ea3c16cf649495a27fec1f261e891120f";
-      name = "qtremoteobjects-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtremoteobjects-everywhere-src-5.12.9.tar.xz";
+      sha256 = "f87af7e9931280f2b44a529dc174cae14247e1b50f9dc9bde8966adb0406babd";
+      name = "qtremoteobjects-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtscript = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtscript-everywhere-src-5.12.7.tar.xz";
-      sha256 = "ca1dbc66d4125a678638dd0c9c030b72fdfc4ec2c229b9316a8bc80a86104019";
-      name = "qtscript-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtscript-everywhere-src-5.12.9.tar.xz";
+      sha256 = "8f2e12e37ff1e7629923cf3b9d446f85e005b2248386e33879ba3b790f1416df";
+      name = "qtscript-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtscxml = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtscxml-everywhere-src-5.12.7.tar.xz";
-      sha256 = "afa950bc95f881c90eea564511f3e9918d53fddf0823afb641d20dc6f794fbb6";
-      name = "qtscxml-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtscxml-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d68d04d83366f11b10a101766baf5253e53ad76a683e0bc15e7dd403d475e61c";
+      name = "qtscxml-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtsensors = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtsensors-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2b9aea9f4e2f681b4067f2b9d97c5073c135e41d26601c71f18f199bc980e740";
-      name = "qtsensors-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtsensors-everywhere-src-5.12.9.tar.xz";
+      sha256 = "77054e2449bcac786cc8f07c0d65c503a22bc629af4844259ff0def27b9889e9";
+      name = "qtsensors-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtserialbus = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtserialbus-everywhere-src-5.12.7.tar.xz";
-      sha256 = "82201edf971e957d849b041ab2914f7497226939c62884ec2906b37576987eae";
-      name = "qtserialbus-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtserialbus-everywhere-src-5.12.9.tar.xz";
+      sha256 = "08b16363a47f9b41f87e3b7cf63eaed2435bb6b7e27775c9717ff863e56141ed";
+      name = "qtserialbus-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtserialport = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtserialport-everywhere-src-5.12.7.tar.xz";
-      sha256 = "224c282ebed750f46b72dfe18260c3d26fbb74e928dec64bd8c51e7beed8721f";
-      name = "qtserialport-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtserialport-everywhere-src-5.12.9.tar.xz";
+      sha256 = "24a10b65b03fc598acd30f4a52b0b71218e9c03ec4bb31a4ca50aae1b52a986d";
+      name = "qtserialport-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtspeech = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtspeech-everywhere-src-5.12.7.tar.xz";
-      sha256 = "0cc4f14aa21172b84c8ebca442037cd94927dad4921f6f6bfb4d7f2468aa6060";
-      name = "qtspeech-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtspeech-everywhere-src-5.12.9.tar.xz";
+      sha256 = "2efdaf5f49d2fad4a6c4cde12dfee2ff2c66ab4298f22d6c203ecd6019186847";
+      name = "qtspeech-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtsvg = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtsvg-everywhere-src-5.12.7.tar.xz";
-      sha256 = "4bf60916d4e398d9609f1b3a17fc7345a0e13c7c1cc407298df20da4c7c67bb8";
-      name = "qtsvg-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtsvg-everywhere-src-5.12.9.tar.xz";
+      sha256 = "32ec251e411d31734b873dd82fd68b6a3142227fdf06fe6ad879f16997fb98d2";
+      name = "qtsvg-everywhere-src-5.12.9.tar.xz";
     };
   };
   qttools = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qttools-everywhere-src-5.12.7.tar.xz";
-      sha256 = "860a97114d518f83c0a9ab3742071da16bb018e6eb387179d5764a8dcca03948";
-      name = "qttools-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qttools-everywhere-src-5.12.9.tar.xz";
+      sha256 = "002dc23410a9d1af6f1cfc696ee18fd3baeddbbfeb9758ddb04bbdb17b2fffdf";
+      name = "qttools-everywhere-src-5.12.9.tar.xz";
     };
   };
   qttranslations = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qttranslations-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2c8d1169f1f20ba32639181f1853b4159940cbaaac41adaa018b6f43ca31323f";
-      name = "qttranslations-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qttranslations-everywhere-src-5.12.9.tar.xz";
+      sha256 = "50bd3a329e86f14af05ef0dbef94c7a6cd6c1f89ca4d008088a44ba76e6ecf40";
+      name = "qttranslations-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtvirtualkeyboard-everywhere-src-5.12.7.tar.xz";
-      sha256 = "aaa52aaff923df22de8472d71843dadb80f3f6fe0312122e64ffe5436db40daa";
-      name = "qtvirtualkeyboard-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtvirtualkeyboard-everywhere-src-5.12.9.tar.xz";
+      sha256 = "7598ee3312a2f4e72edf363c16c506740a8b91c5c06544da068a3c0d73f7f807";
+      name = "qtvirtualkeyboard-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwayland = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwayland-everywhere-src-5.12.7.tar.xz";
-      sha256 = "fc1ab8e25461580e37090e4f82422411dee71a3de48a54be1f4b6569e00f66c5";
-      name = "qtwayland-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwayland-everywhere-src-5.12.9.tar.xz";
+      sha256 = "6f416948a98586b9c13c46b36be5ac6bb96a1dde9f50123b5e6dcdd102e9d77e";
+      name = "qtwayland-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebchannel-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b0ae72e5957aa4b281a37d2e169fcf91f92382bc36bd0cf09c80b2bb961bce75";
-      name = "qtwebchannel-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebchannel-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d55a06a0929c86664496e1113e74425d56d175916acd8abbb95c371eb16b43eb";
+      name = "qtwebchannel-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebengine = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebengine-everywhere-src-5.12.7.tar.xz";
-      sha256 = "83b754dca3dafeb21be6c7cb5ea99f11f5dbe9055bc1680f5bd7159224bb46fa";
-      name = "qtwebengine-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebengine-everywhere-src-5.12.9.tar.xz";
+      sha256 = "27a9a19e4deb5e7a0fabc13e38fe5a8818730c92f6a343b9084aa17977468e25";
+      name = "qtwebengine-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebglplugin = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebglplugin-everywhere-src-5.12.7.tar.xz";
-      sha256 = "e049ed855bc772a56808844a803aac653d2d64f092a1fd1fe6a73ab460b55c3b";
-      name = "qtwebglplugin-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebglplugin-everywhere-src-5.12.9.tar.xz";
+      sha256 = "cb7ba4cb66900e5d4315809e2b5ad3e4e381d576a14f6224f8ea58373f997c42";
+      name = "qtwebglplugin-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebsockets = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebsockets-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6fd13c2558f532a32f20d977b44c0146107a0e93861df84978e4fd72af283b17";
-      name = "qtwebsockets-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebsockets-everywhere-src-5.12.9.tar.xz";
+      sha256 = "08a92c36d52b4d93a539a950698bb2912ea36055015d421f874bf672637f21ef";
+      name = "qtwebsockets-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebview = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebview-everywhere-src-5.12.7.tar.xz";
-      sha256 = "d3f82d2ceab59dc4dee3b6f54f4b70869c199d63f4534b299d900cdacc9b7be7";
-      name = "qtwebview-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebview-everywhere-src-5.12.9.tar.xz";
+      sha256 = "3e0506411d101cc08232946bcacef2fb90884c27eb91eeb97a1a68ed3788a7b6";
+      name = "qtwebview-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwinextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwinextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "cfeec81ee1f75b9786ed28382deecc5e38fd142c0b48476beccadb587f93118c";
-      name = "qtwinextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwinextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "7bab5053197148a5e1609cab12331e4a3f2e1a86bcbde137948330b288803754";
+      name = "qtwinextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtx11extras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtx11extras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "23895f4b1e84f3783526b9e17680df38c587601d4dfa6ff1b81ace432c480b96";
-      name = "qtx11extras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtx11extras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "09432392641b56205cbcda6be89d0835bfecad64ad61713a414b951b740c9cec";
+      name = "qtx11extras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtxmlpatterns = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtxmlpatterns-everywhere-src-5.12.7.tar.xz";
-      sha256 = "9002014129a1f2a44700df333a7776e23bdfd689e7a619c3540fd9f6819b417b";
-      name = "qtxmlpatterns-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtxmlpatterns-everywhere-src-5.12.9.tar.xz";
+      sha256 = "8d0e92fce6b4cbe7f1ecd1e90f6c7d71681b9b8870a577c0b18cadd93b8713b2";
+      name = "qtxmlpatterns-everywhere-src-5.12.9.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
index 469157a5f727..3eefd23fde73 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -54,7 +54,14 @@ let
     qtbase =
       optionals stdenv.isDarwin [
         ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
-        ./qtbase.patch.d/0002-qtbase-mac.patch
+
+        # Downgrade minimal required SDK to 10.12
+        ./qtbase.patch.d/0013-define-kiosurfacesuccess.patch
+        ./qtbase.patch.d/qtbase-sdk-10.12-mac.patch
+
+        # Patch framework detection to support X.framework/X.tbd,
+        # extending the current support for X.framework/X.
+        ./qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
       ]
       ++ [
         ./qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -68,9 +75,19 @@ let
         ./qtbase.patch.d/0011-fix-header_module.patch
       ];
     qtdeclarative = [ ./qtdeclarative.patch ];
+    qtlocation = [ ./qtlocation-gcc-9.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
-    qtwebengine = [ ]
+    qtwebengine = [
+      # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
+      (fetchpatch {
+        name = "qtwebengine-bison-3.7-build.patch";
+        url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
+        sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
+        stripLen = 1;
+        extraPrefix = "src/3rdparty/";
+      })
+    ]
       ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
     qtwebkit = [
       (fetchpatch {
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh b/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh
index 2d266b529776..e4e02bd82ed3 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ \
+            -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
index 0951b6646ab7..0f38ce0d7f61 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -309,10 +309,8 @@ index e3534561a5..3b01424e67 100644
 -xcode_copy_phase_strip_setting.value = NO
 -QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
 diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
-deleted file mode 100644
-index c40f58c987..0000000000
 --- a/mkspecs/features/mac/sdk.mk
-+++ /dev/null
++++ b/mkspecs/features/mac/sdk.mk
 @@ -1,25 +0,0 @@
 -
 -ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
deleted file mode 100644
index 2e28466c5032..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From ccaa916eab33093704293bc911eedd85fbe5f160 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
-Date: Fri, 3 Apr 2020 21:15:27 +0200
-Subject: [PATCH 02/10] qtbase-mac
-
----
- src/corelib/kernel/qcore_mac_p.h | 16 ++++++++++++++--
- src/testlib/qappletestlogger.cpp |  2 +-
- src/testlib/qappletestlogger_p.h |  2 +-
- src/testlib/qtestcase.cpp        |  2 +-
- src/testlib/qtestlog.cpp         |  2 +-
- src/testlib/qtestlog_p.h         |  2 +-
- 6 files changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
-index 535d3579b2..3d70bf39c1 100644
---- a/src/corelib/kernel/qcore_mac_p.h
-+++ b/src/corelib/kernel/qcore_mac_p.h
-@@ -225,7 +225,7 @@ private:
- 
- // --------------------------------------------------------------------------
- 
--#if !defined(QT_BOOTSTRAPPED)
-+#if 0
- 
- QT_END_NAMESPACE
- #include <os/activity.h>
-@@ -303,7 +303,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
- 
- #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
- 
--#endif // !defined(QT_BOOTSTRAPPED)
-+#else // !defined(QT_BOOTSTRAPPED)
-+
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
-+
-+#define QT_APPLE_LOG_ACTIVITY2(...)
-+#define QT_APPLE_LOG_ACTIVITY1(...)
-+#define QT_APPLE_LOG_ACTIVITY(...)
-+
-+#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
-+
-+#endif
- 
- // -------------------------------------------------------------------------
- 
-diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
-index dfeadebdef..2a74330c1d 100644
---- a/src/testlib/qappletestlogger.cpp
-+++ b/src/testlib/qappletestlogger.cpp
-@@ -43,7 +43,7 @@
- 
- QT_BEGIN_NAMESPACE
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
- 
- using namespace QTestPrivate;
- 
-diff --git a/src/testlib/qappletestlogger_p.h b/src/testlib/qappletestlogger_p.h
-index 62c6d95c5a..f8e0a3b767 100644
---- a/src/testlib/qappletestlogger_p.h
-+++ b/src/testlib/qappletestlogger_p.h
-@@ -57,7 +57,7 @@
- 
- QT_BEGIN_NAMESPACE
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
- class QAppleTestLogger : public QAbstractTestLogger
- {
- public:
-diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
-index 70733a692a..8bcda17858 100644
---- a/src/testlib/qtestcase.cpp
-+++ b/src/testlib/qtestcase.cpp
-@@ -852,7 +852,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool
- 
-     bool addFallbackLogger = !explicitLoggerRequested;
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-     // Any explicitly requested loggers will be added by now, so we can check if they use stdout
-     const bool safeToAddAppleLogger = !AppleUnifiedLogger::willMirrorToStderr() || !QTestLog::loggerUsingStdout();
-     if (safeToAddAppleLogger && QAppleTestLogger::debugLoggingEnabled()) {
-diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
-index f3ebf343c5..9b4f526b2e 100644
---- a/src/testlib/qtestlog.cpp
-+++ b/src/testlib/qtestlog.cpp
-@@ -465,7 +465,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
-     case QTestLog::TAP:
-         logger = new QTapTestLogger(filename);
-         break;
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-     case QTestLog::Apple:
-         logger = new QAppleTestLogger;
-         break;
-diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
-index fff36f290d..f737ccf064 100644
---- a/src/testlib/qtestlog_p.h
-+++ b/src/testlib/qtestlog_p.h
-@@ -72,7 +72,7 @@ public:
- 
-     enum LogMode {
-         Plain = 0, XML, LightXML, XunitXML, CSV, TeamCity, TAP
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-         , Apple
- #endif
- #if defined(HAVE_XCTEST)
--- 
-2.25.1
-
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
new file mode 100644
index 000000000000..8a5939978a6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
@@ -0,0 +1,15 @@
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..615bfed124 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -119,6 +119,10 @@ macro(_qt5gui_find_extra_libs Name Libs LibDir IncDirs)
+             if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
+                 set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
+             endif()
++            set(Qt5Gui_${_cmake_lib_name}_LIBRARY "${Qt5Gui_${_cmake_lib_name}_LIBRARY}/${_lib}.tbd")
++            if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
++                set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
++            endif()
+ !!ENDIF
+             if (NOT Qt5Gui_${_cmake_lib_name}_LIBRARY)
+                 # The above find_library call doesn\'t work for finding
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0013-define-kiosurfacesuccess.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0013-define-kiosurfacesuccess.patch
new file mode 100644
index 000000000000..a43a46d8a69b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0013-define-kiosurfacesuccess.patch
@@ -0,0 +1,16 @@
+diff --git a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
+index a367487e..c3aeca1d 100644
+--- a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
++++ b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
+@@ -49,6 +49,11 @@
+ // but was only added in the 10.14 SDK, so declare it just in case.
+ extern "C" CFPropertyListRef CGColorSpaceCopyPropertyList(CGColorSpaceRef space);
+ 
++// Introduced in 10.13: http://codeworkshop.net/objc-diff/sdkdiffs/macos/10.13/IOSurface.html
++#if !defined(kIOSurfaceSuccess)
++#define kIOSurfaceSuccess KERN_SUCCESS
++#endif
++
+ QT_BEGIN_NAMESPACE
+ 
+ Q_LOGGING_CATEGORY(lcQpaIOSurface, "qt.qpa.backingstore.iosurface");
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/qtbase-sdk-10.12-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/qtbase-sdk-10.12-mac.patch
new file mode 100644
index 000000000000..b2dff5aba8f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/qtbase-sdk-10.12-mac.patch
@@ -0,0 +1,77 @@
+diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
+--- a/mkspecs/common/macx.conf
++++ b/mkspecs/common/macx.conf
+@@ -10,7 +10,7 @@ QMAKE_APPLE_DEVICE_ARCHS = x86_64
+ 
+ # Should be 10.15, but as long as the CI builds with
+ # older SDKs we have to keep this.
+-QT_MAC_SDK_VERSION_MIN = 10.14
++QT_MAC_SDK_VERSION_MIN = 10.12
+ 
+ QT_MAC_SDK_VERSION_MAX = 10.15
+ 
+diff --git a/src/corelib/kernel/qcore_mac_objc.mm b/src/corelib/kernel/qcore_mac_objc.mm
+--- a/src/corelib/kernel/qcore_mac_objc.mm
++++ b/src/corelib/kernel/qcore_mac_objc.mm
+@@ -142,16 +142,10 @@ QMacAutoReleasePool::QMacAutoReleasePool()
+ 
+ #ifdef QT_DEBUG
+     void *poolFrame = nullptr;
+-    if (__builtin_available(macOS 10.14, iOS 12.0, tvOS 12.0, watchOS 5.0, *)) {
+-        void *frame;
+-        if (backtrace_from_fp(__builtin_frame_address(0), &frame, 1))
+-            poolFrame = frame;
+-    } else {
+         static const int maxFrames = 3;
+         void *callstack[maxFrames];
+         if (backtrace(callstack, maxFrames) == maxFrames)
+             poolFrame = callstack[maxFrames - 1];
+-    }
+ 
+     if (poolFrame) {
+         Dl_info info;
+diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp
+--- a/src/gui/rhi/qrhi.cpp
++++ b/src/gui/rhi/qrhi.cpp
+@@ -4050,7 +4050,7 @@ QRhi *QRhi::create(Implementation impl, QRhiInitParams *params, Flags flags, QRh
+ #endif
+     case Metal:
+ //#ifdef Q_OS_DARWIN
+-#ifdef Q_OS_MACOS
++#if 0
+         r->d = new QRhiMetal(static_cast<QRhiMetalInitParams *>(params),
+                              static_cast<QRhiMetalNativeHandles *>(importDevice));
+         break;
+diff --git a/src/gui/rhi/rhi.pri b/src/gui/rhi/rhi.pri
+--- a/src/gui/rhi/rhi.pri
++++ b/src/gui/rhi/rhi.pri
+@@ -44,7 +44,7 @@ win32 {
+ }
+ 
+ # darwin {
+-macos {
++false {
+     HEADERS += \
+         rhi/qrhimetal_p.h \
+         rhi/qrhimetal_p_p.h
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -134,7 +134,7 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     NSImage *nsimage = qt_mac_create_nsimage(pm);
+     [nsimage setSize:NSSizeFromCGSize(pmDeviceIndependentSize.toCGSize())];
+ 
+-    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
++    QMacPasteboard dragBoard((CFStringRef) NSDragPboard, QMacInternalPasteboardMime::MIME_DND);
+     m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
+     dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
+ 
+@@ -145,7 +145,7 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     CGFloat flippedY = pmDeviceIndependentSize.height() - hotSpot.y();
+     event_location.y -= flippedY;
+     NSSize mouseOffset_unused = NSMakeSize(0.0, 0.0);
+-    NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
++    NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
+ 
+     [theWindow dragImage:nsimage
+         at:event_location
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch
new file mode 100644
index 000000000000..1791313e5603
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch
@@ -0,0 +1,21 @@
+diff --git a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+index d475c38..c1710a6 100644
+--- a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
++++ b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+@@ -5,6 +5,7 @@
+ #include <unicode/ushape.h>
+ 
+ #include <memory>
++#include <stdexcept>
+ 
+ namespace mbgl {
+ 
+diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+index 97bfe91..56d3e17 100644
+--- a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
++++ b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+@@ -1,3 +1,4 @@
++#include <cstdint>
+ #include <mbgl/util/convert.hpp>
+ 
+ namespace mbgl {
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
index 26d189d86019..4871032f6f2c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
@@ -28,18 +28,3 @@ diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
  #define HAVE_SYS_TIMEB_H 1
  
  #if !PLATFORM(GTK) && !PLATFORM(QT)
-diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
---- a/Source/WTF/wtf/PlatformMac.cmake
-+++ b/Source/WTF/wtf/PlatformMac.cmake
-@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
- 
- find_library(COCOA_LIBRARY Cocoa)
- find_library(COREFOUNDATION_LIBRARY CoreFoundation)
--find_library(READLINE_LIBRARY Readline)
- list(APPEND WTF_LIBRARIES
-     ${COREFOUNDATION_LIBRARY}
-     ${COCOA_LIBRARY}
--    ${READLINE_LIBRARY}
-     libicucore.dylib
- )
- 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
index 1a90c610a5b5..08fd3a9720cf 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -54,7 +54,20 @@ let
     qtbase =
       optionals stdenv.isDarwin [
         ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
-        ./qtbase.patch.d/0002-qtbase-mac.patch
+
+        # Downgrade minimal required SDK to 10.12
+        ./qtbase.patch.d/0013-define-kiosurfacesuccess.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
+        ./qtbase.patch.d/qtbase-sdk-10.12-mac.patch
+
+        # Patch framework detection to support X.framework/X.tbd,
+        # extending the current support for X.framework/X.
+        ./qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
       ]
       ++ [
         ./qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -72,11 +85,17 @@ let
     qtserialport = [ ./qtserialport.patch ];
     qtwebengine = [ ]
       ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
-    qtwebkit = [ ./qtwebkit.patch ]
-      ++ optionals stdenv.isDarwin [
-        ./qtwebkit-darwin-no-readline.patch
-        ./qtwebkit-darwin-no-qos-classes.patch
-      ];
+    qtwebkit = [
+      (fetchpatch {
+        name = "qtwebkit-bison-3.7-build.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
+        sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
+      })
+      ./qtwebkit.patch
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebkit-darwin-no-readline.patch
+      ./qtwebkit-darwin-no-qos-classes.patch
+    ];
     qttools = [ ./qttools.patch ];
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh b/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh
index 97829a133ca5..81ceb3ef77ea 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/ \
+            -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
index ba4c54b228c8..3a2900abdd6b 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -309,10 +309,8 @@ index e3534561a5..3b01424e67 100644
 -xcode_copy_phase_strip_setting.value = NO
 -QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
 diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
-deleted file mode 100644
-index c40f58c987..0000000000
 --- a/mkspecs/features/mac/sdk.mk
-+++ /dev/null
++++ b/mkspecs/features/mac/sdk.mk
 @@ -1,25 +0,0 @@
 -
 -ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch
deleted file mode 100644
index 4271b64679d7..000000000000
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From a9ba67d3db7390d9ddc46751346e70b0a522711a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
-Date: Fri, 3 Apr 2020 21:15:27 +0200
-Subject: [PATCH 02/11] qtbase-mac
-
----
- src/corelib/kernel/qcore_mac_p.h | 16 ++++++++++++++--
- src/testlib/qappletestlogger.cpp |  2 +-
- src/testlib/qappletestlogger_p.h |  2 +-
- src/testlib/qtestcase.cpp        |  2 +-
- src/testlib/qtestlog.cpp         |  2 +-
- src/testlib/qtestlog_p.h         |  4 ++--
- 6 files changed, 20 insertions(+), 8 deletions(-)
-
-diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
-index 535d3579b2..3d70bf39c1 100644
---- a/src/corelib/kernel/qcore_mac_p.h
-+++ b/src/corelib/kernel/qcore_mac_p.h
-@@ -225,7 +225,7 @@ private:
- 
- // --------------------------------------------------------------------------
- 
--#if !defined(QT_BOOTSTRAPPED)
-+#if 0
- 
- QT_END_NAMESPACE
- #include <os/activity.h>
-@@ -303,7 +303,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
- 
- #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
- 
--#endif // !defined(QT_BOOTSTRAPPED)
-+#else // !defined(QT_BOOTSTRAPPED)
-+
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
-+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
-+
-+#define QT_APPLE_LOG_ACTIVITY2(...)
-+#define QT_APPLE_LOG_ACTIVITY1(...)
-+#define QT_APPLE_LOG_ACTIVITY(...)
-+
-+#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
-+
-+#endif
- 
- // -------------------------------------------------------------------------
- 
-diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
-index dfeadebdef..2a74330c1d 100644
---- a/src/testlib/qappletestlogger.cpp
-+++ b/src/testlib/qappletestlogger.cpp
-@@ -43,7 +43,7 @@
- 
- QT_BEGIN_NAMESPACE
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
- 
- using namespace QTestPrivate;
- 
-diff --git a/src/testlib/qappletestlogger_p.h b/src/testlib/qappletestlogger_p.h
-index 62c6d95c5a..f8e0a3b767 100644
---- a/src/testlib/qappletestlogger_p.h
-+++ b/src/testlib/qappletestlogger_p.h
-@@ -57,7 +57,7 @@
- 
- QT_BEGIN_NAMESPACE
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
- class QAppleTestLogger : public QAbstractTestLogger
- {
- public:
-diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
-index f45999c7fa..d5b525dc12 100644
---- a/src/testlib/qtestcase.cpp
-+++ b/src/testlib/qtestcase.cpp
-@@ -849,7 +849,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool
- 
-     bool addFallbackLogger = !explicitLoggerRequested;
- 
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-     // Any explicitly requested loggers will be added by now, so we can check if they use stdout
-     const bool safeToAddAppleLogger = !AppleUnifiedLogger::willMirrorToStderr() || !QTestLog::loggerUsingStdout();
-     if (safeToAddAppleLogger && QAppleTestLogger::debugLoggingEnabled()) {
-diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
-index a388780532..63ab965101 100644
---- a/src/testlib/qtestlog.cpp
-+++ b/src/testlib/qtestlog.cpp
-@@ -465,7 +465,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
-     case QTestLog::TAP:
-         logger = new QTapTestLogger(filename);
-         break;
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-     case QTestLog::Apple:
-         logger = new QAppleTestLogger;
-         break;
-diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
-index ddaf14ed9b..0c49c93a88 100644
---- a/src/testlib/qtestlog_p.h
-+++ b/src/testlib/qtestlog_p.h
-@@ -74,8 +74,8 @@ public:
-     Q_DISABLE_COPY_MOVE(QTestLog)
- 
-     enum LogMode {
--        Plain = 0, XML, LightXML, JUnitXML, CSV, TeamCity, TAP
--#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
-+        Plain = 0, XML, LightXML, XunitXML, CSV, TeamCity, TAP
-+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
-         , Apple
- #endif
- #if defined(HAVE_XCTEST)
--- 
-2.25.4
-
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
new file mode 100644
index 000000000000..8a5939978a6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
@@ -0,0 +1,15 @@
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..615bfed124 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -119,6 +119,10 @@ macro(_qt5gui_find_extra_libs Name Libs LibDir IncDirs)
+             if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
+                 set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
+             endif()
++            set(Qt5Gui_${_cmake_lib_name}_LIBRARY "${Qt5Gui_${_cmake_lib_name}_LIBRARY}/${_lib}.tbd")
++            if (NOT EXISTS "${Qt5Gui_${_cmake_lib_name}_LIBRARY}")
++                set(Qt5Gui_${_cmake_lib_name}_LIBRARY)
++            endif()
+ !!ENDIF
+             if (NOT Qt5Gui_${_cmake_lib_name}_LIBRARY)
+                 # The above find_library call doesn\'t work for finding
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0013-define-kiosurfacesuccess.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0013-define-kiosurfacesuccess.patch
new file mode 100644
index 000000000000..a43a46d8a69b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0013-define-kiosurfacesuccess.patch
@@ -0,0 +1,16 @@
+diff --git a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
+index a367487e..c3aeca1d 100644
+--- a/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
++++ b/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.mm
+@@ -49,6 +49,11 @@
+ // but was only added in the 10.14 SDK, so declare it just in case.
+ extern "C" CFPropertyListRef CGColorSpaceCopyPropertyList(CGColorSpaceRef space);
+ 
++// Introduced in 10.13: http://codeworkshop.net/objc-diff/sdkdiffs/macos/10.13/IOSurface.html
++#if !defined(kIOSurfaceSuccess)
++#define kIOSurfaceSuccess KERN_SUCCESS
++#endif
++
+ QT_BEGIN_NAMESPACE
+ 
+ Q_LOGGING_CATEGORY(lcQpaIOSurface, "qt.qpa.backingstore.iosurface");
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
new file mode 100644
index 000000000000..de75ecbd0c17
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
@@ -0,0 +1,47 @@
+From f156c35975e7844d2369ec5a6633ee40ec56f17a Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:29 -0500
+Subject: [PATCH 1/6] Revert "QCocoaDrag - set image only on the first drag
+ item"
+
+This reverts commit 7ee9bfc158a290776f622f62d0202220c6d159bc.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index 4bd1b129bd..a506126c72 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -217,18 +217,13 @@ bool QCocoaDrag::maybeDragMultipleItems()
+     // 0. We start from URLs, which can be actually in a list (thus technically
+     // only ONE item in the pasteboard. The fact it's only one does not help, we are
+     // still getting an exception because of the number of items/images mismatch ...
+-    // We only set the image for the first item and nil for the rest, the image already
+-    // contains a combined picture for all urls we drag.
+-    auto imageOrNil = dragImage;
+     for (const auto &qtUrl : qtUrls) {
+         NSURL *nsUrl = qtUrl.toNSURL();
+         auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:nsUrl] autorelease];
+         const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+                                             dragImage.size.width,
+                                             dragImage.size.height);
+-
+-        [newItem setDraggingFrame:itemFrame contents:imageOrNil];
+-        imageOrNil = nil;
++        [newItem setDraggingFrame:itemFrame contents:dragImage];
+         [dragItems addObject:newItem];
+     }
+     // 1. Repeat for non-url items, if any:
+@@ -237,7 +232,7 @@ bool QCocoaDrag::maybeDragMultipleItems()
+         const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+                                             dragImage.size.width,
+                                             dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:imageOrNil];
++        [newItem setDraggingFrame:itemFrame contents:dragImage];
+         [dragItems addObject:newItem];
+     }
+ 
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
new file mode 100644
index 000000000000..ee3a2d9f5a4d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
@@ -0,0 +1,40 @@
+From 9aaac67e3c3bf40ef3efc3b07b1655f72c8c54aa Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:31 -0500
+Subject: [PATCH 2/6] Revert "QCocoaDrag::drag - make sure clipboard is ours
+ and populated"
+
+This reverts commit 720e2e0c92ca6635c5f05f318770a70cf653c1c7.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index a506126c72..c6ee4323ce 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -131,10 +131,6 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     m_drag = o;
+     m_executed_drop_action = Qt::IgnoreAction;
+ 
+-    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
+-    m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
+-    dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
+-
+     if (maybeDragMultipleItems())
+         return m_executed_drop_action;
+ 
+@@ -143,6 +139,10 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()];
+     Q_ASSERT(dragImage);
+ 
++    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
++    m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
++    dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
++
+     NSPoint event_location = [m_lastEvent locationInWindow];
+     NSWindow *theWindow = [m_lastEvent window];
+     Q_ASSERT(theWindow);
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
new file mode 100644
index 000000000000..55211fca64c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
@@ -0,0 +1,27 @@
+From d1626c55d10537274c6f365855342a1c619a4c3a Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:32 -0500
+Subject: [PATCH 3/6] Revert "QCocoaDrag::maybeDragMultipleItems - fix
+ erroneous size check"
+
+This reverts commit b8a03411784803c07ecc1f769860756d6fdc04cd.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index c6ee4323ce..ab6863a432 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -187,7 +187,7 @@ bool QCocoaDrag::maybeDragMultipleItems()
+     const auto &qtUrls = m_drag->mimeData()->urls();
+     NSPasteboard *dragBoard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
+ 
+-    if (qtUrls.size() <= 1) {
++    if (int(dragBoard.pasteboardItems.count) == 1 && qtUrls.size() <= 1) {
+         // Good old -dragImage: works perfectly for this ...
+         return false;
+     }
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
new file mode 100644
index 000000000000..7b568a91943f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
@@ -0,0 +1,192 @@
+From d5c155a9f3ff38e28ac073f6df43175724ebc290 Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:34 -0500
+Subject: [PATCH 4/6] Revert "QCocoaDrag - avoid using the deprecated API if
+ possible"
+
+This reverts commit 8481a9fc974a1f1dd44a9f82decb18fe2290689f.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.h      |  6 --
+ src/plugins/platforms/cocoa/qcocoadrag.mm     | 90 -------------------
+ .../platforms/cocoa/qnsview_dragging.mm       |  9 +-
+ 3 files changed, 1 insertion(+), 104 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.h b/src/plugins/platforms/cocoa/qcocoadrag.h
+index 975741c270..5a5b985c6e 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.h
++++ b/src/plugins/platforms/cocoa/qcocoadrag.h
+@@ -48,8 +48,6 @@
+ #include <QtGui/private/qdnd_p.h>
+ #include <QtGui/private/qinternalmimedata_p.h>
+ 
+-#include <QtCore/qeventloop.h>
+-
+ QT_BEGIN_NAMESPACE
+ 
+ class QCocoaDrag : public QPlatformDrag
+@@ -71,15 +69,11 @@ public:
+     void setLastMouseEvent(NSEvent *event, NSView *view);
+ 
+     void setAcceptedAction(Qt::DropAction act);
+-    void exitDragLoop();
+ private:
+     QDrag *m_drag;
+     NSEvent *m_lastEvent;
+     NSView *m_lastView;
+     Qt::DropAction m_executed_drop_action;
+-    QEventLoop internalDragLoop;
+-
+-    bool maybeDragMultipleItems();
+ 
+     QPixmap dragPixmap(QDrag *drag, QPoint &hotSpot) const;
+ };
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index ab6863a432..b4a16ab912 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -44,9 +44,6 @@
+ #include <QtWidgets/qwidget.h>
+ #endif
+ #include <QtGui/private/qcoregraphics_p.h>
+-#include <QtCore/qsysinfo.h>
+-
+-#include <vector>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -131,9 +128,6 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     m_drag = o;
+     m_executed_drop_action = Qt::IgnoreAction;
+ 
+-    if (maybeDragMultipleItems())
+-        return m_executed_drop_action;
+-
+     QPoint hotSpot = m_drag->hotSpot();
+     QPixmap pm = dragPixmap(m_drag, hotSpot);
+     NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()];
+@@ -164,95 +158,11 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     return m_executed_drop_action;
+ }
+ 
+-bool QCocoaDrag::maybeDragMultipleItems()
+-{
+-    Q_ASSERT(m_drag && m_drag->mimeData());
+-    Q_ASSERT(m_executed_drop_action == Qt::IgnoreAction);
+-
+-    if (QOperatingSystemVersion::current() < QOperatingSystemVersion::MacOSMojave) {
+-        // -dragImage: stopped working in 10.14 first.
+-        return false;
+-    }
+-
+-    const QMacAutoReleasePool pool;
+-
+-    NSWindow *theWindow = [m_lastEvent window];
+-    Q_ASSERT(theWindow);
+-
+-    if (![theWindow.contentView respondsToSelector:@selector(draggingSession:sourceOperationMaskForDraggingContext:)])
+-        return false;
+-
+-    auto *sourceView = static_cast<NSView<NSDraggingSource>*>(theWindow.contentView);
+-
+-    const auto &qtUrls = m_drag->mimeData()->urls();
+-    NSPasteboard *dragBoard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
+-
+-    if (int(dragBoard.pasteboardItems.count) == 1 && qtUrls.size() <= 1) {
+-        // Good old -dragImage: works perfectly for this ...
+-        return false;
+-    }
+-
+-    std::vector<NSPasteboardItem *> nonUrls;
+-    for (NSPasteboardItem *item in dragBoard.pasteboardItems) {
+-        bool isUrl = false;
+-        for (NSPasteboardType type in item.types) {
+-            using NSStringRef = NSString *;
+-            if ([type isEqualToString:NSStringRef(kUTTypeFileURL)]) {
+-                isUrl = true;
+-                break;
+-            }
+-        }
+-
+-        if (!isUrl)
+-            nonUrls.push_back(item);
+-    }
+-
+-    QPoint hotSpot = m_drag->hotSpot();
+-    const auto pixmap = dragPixmap(m_drag, hotSpot);
+-    NSImage *dragImage = [NSImage imageFromQImage:pixmap.toImage()];
+-    Q_ASSERT(dragImage);
+-
+-    NSMutableArray<NSDraggingItem *> *dragItems = [[[NSMutableArray alloc] init] autorelease];
+-    const NSPoint itemLocation = m_drag->hotSpot().toCGPoint();
+-    // 0. We start from URLs, which can be actually in a list (thus technically
+-    // only ONE item in the pasteboard. The fact it's only one does not help, we are
+-    // still getting an exception because of the number of items/images mismatch ...
+-    for (const auto &qtUrl : qtUrls) {
+-        NSURL *nsUrl = qtUrl.toNSURL();
+-        auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:nsUrl] autorelease];
+-        const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+-                                            dragImage.size.width,
+-                                            dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:dragImage];
+-        [dragItems addObject:newItem];
+-    }
+-    // 1. Repeat for non-url items, if any:
+-    for (auto *pbItem : nonUrls) {
+-        auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:pbItem] autorelease];
+-        const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+-                                            dragImage.size.width,
+-                                            dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:dragImage];
+-        [dragItems addObject:newItem];
+-    }
+-
+-    [sourceView beginDraggingSessionWithItems:dragItems event:m_lastEvent source:sourceView];
+-    internalDragLoop.exec();
+-    return true;
+-}
+-
+ void QCocoaDrag::setAcceptedAction(Qt::DropAction act)
+ {
+     m_executed_drop_action = act;
+ }
+ 
+-void QCocoaDrag::exitDragLoop()
+-{
+-    if (internalDragLoop.isRunning())
+-        internalDragLoop.exit();
+-}
+-
+-
+ QPixmap QCocoaDrag::dragPixmap(QDrag *drag, QPoint &hotSpot) const
+ {
+     const QMimeData* data = drag->mimeData();
+diff --git a/src/plugins/platforms/cocoa/qnsview_dragging.mm b/src/plugins/platforms/cocoa/qnsview_dragging.mm
+index 978d73f7d9..463e3c5579 100644
+--- a/src/plugins/platforms/cocoa/qnsview_dragging.mm
++++ b/src/plugins/platforms/cocoa/qnsview_dragging.mm
+@@ -232,10 +232,6 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
+     if (!target)
+         return;
+ 
+-    auto *nativeDrag = QCocoaIntegration::instance()->drag();
+-    Q_ASSERT(nativeDrag);
+-    nativeDrag->exitDragLoop();
+-
+     QPoint windowPoint = QPointF::fromCGPoint([self convertPoint:sender.draggingLocation fromView:nil]).toPoint();
+ 
+     qCDebug(lcQpaMouse) << QEvent::DragLeave << self << "at" << windowPoint;
+@@ -294,10 +290,7 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
+     if (!target)
+         return;
+ 
+-    QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag();
+-    Q_ASSERT(nativeDrag);
+-    nativeDrag->exitDragLoop();
+-    nativeDrag->setAcceptedAction(qt_mac_mapNSDragOperation(operation));
++    QCocoaIntegration::instance()->drag();
+ 
+     // Qt starts drag-and-drop on a mouse button press event. Cococa in
+     // this case won't send the matching release event, so we have to
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
new file mode 100644
index 000000000000..f93f80055982
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
@@ -0,0 +1,26 @@
+From e55ca5d08b29e67b699dc217abcb65e4a7655f72 Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:37 -0500
+Subject: [PATCH 5/6] Revert "macOS: Fix use of deprecated NSOffState"
+
+This reverts commit 6a0995525d306a1fa224adcbcb9f0ae1fc7d01bd.
+---
+ src/plugins/styles/mac/qmacstyle_mac.mm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm
+index d1febd81d4..b5e6e60ec0 100644
+--- a/src/plugins/styles/mac/qmacstyle_mac.mm
++++ b/src/plugins/styles/mac/qmacstyle_mac.mm
+@@ -3955,7 +3955,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+                     pbCell = static_cast<NSPopUpButtonCell *>(pb.cell);
+                     oldPosition = pbCell.arrowPosition;
+                     pbCell.arrowPosition = NSPopUpNoArrow;
+-                    if (pb.state == NSControlStateValueOff) {
++                    if (pb.state == NSOffState) {
+                         // NSPopUpButton in this state is smaller.
+                         rAdjusted.origin.x -= 3;
+                         rAdjusted.size.width += 6;
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
new file mode 100644
index 000000000000..b5c634aff76b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
@@ -0,0 +1,77 @@
+From 3ce5e752c66307f905fdf732b102a396d9248fbb Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 13:22:02 -0500
+Subject: [PATCH 6/6] git checkout v5.15.0 --
+ src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+
+---
+ .../cocoa/qcocoacolordialoghelper.mm          | 50 +++++++++----------
+ 1 file changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+index 5ad1f9d7bb..c9fa035d87 100644
+--- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
++++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+@@ -180,34 +180,34 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
+ 
+ - (void)updateQtColor
+ {
+-    // Discard the color space and pass the color components to QColor. This
+-    // is a good option as long as QColor is color-unmanaged: we preserve the
+-    // exact RGB value from the color picker, which is predictable. Further,
+-    // painting with the color will reproduce the same color on-screen, as
+-    // long as the the same screen is used for selecting the color.
+-    NSColor *componentColor = [[mColorPanel color] colorUsingType:NSColorTypeComponentBased];
+-    switch (componentColor.colorSpace.colorSpaceModel)
+-    {
+-    case NSColorSpaceModelGray: {
+-        CGFloat white = 0, alpha = 0;
+-        [componentColor getWhite:&white alpha:&alpha];
+-        mQtColor.setRgbF(white, white, white, alpha);
+-    } break;
+-    case NSColorSpaceModelRGB: {
+-        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
+-        [componentColor getRed:&red green:&green blue:&blue alpha:&alpha];
+-        mQtColor.setRgbF(red, green, blue, alpha);
+-    } break;
+-    case NSColorSpaceModelCMYK: {
++    NSColor *color = [mColorPanel color];
++    NSString *colorSpaceName = [color colorSpaceName];
++    if (colorSpaceName == NSDeviceCMYKColorSpace) {
+         CGFloat cyan = 0, magenta = 0, yellow = 0, black = 0, alpha = 0;
+-        [componentColor getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
++        [color getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
+         mQtColor.setCmykF(cyan, magenta, yellow, black, alpha);
+-    } break;
+-    default:
+-        qWarning("QNSColorPanelDelegate: Unsupported color space model");
+-    break;
++    } else if (colorSpaceName == NSCalibratedRGBColorSpace || colorSpaceName == NSDeviceRGBColorSpace)  {
++        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++        [color getRed:&red green:&green blue:&blue alpha:&alpha];
++        mQtColor.setRgbF(red, green, blue, alpha);
++    } else if (colorSpaceName == NSNamedColorSpace) {
++        NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
++        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++        [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
++        mQtColor.setRgbF(red, green, blue, alpha);
++    } else {
++        NSColorSpace *colorSpace = [color colorSpace];
++        if ([colorSpace colorSpaceModel] == NSCMYKColorSpaceModel && [color numberOfComponents] == 5){
++            CGFloat components[5];
++            [color getComponents:components];
++            mQtColor.setCmykF(components[0], components[1], components[2], components[3], components[4]);
++        } else {
++            NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
++            CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++            [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
++            mQtColor.setRgbF(red, green, blue, alpha);
++        }
+     }
+-
+     if (mHelper)
+         emit mHelper->currentColorChanged(mQtColor);
+ }
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/qtbase-sdk-10.12-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/qtbase-sdk-10.12-mac.patch
new file mode 100644
index 000000000000..3638268de7af
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/qtbase-sdk-10.12-mac.patch
@@ -0,0 +1,77 @@
+diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
+--- a/mkspecs/common/macx.conf
++++ b/mkspecs/common/macx.conf
+@@ -10,7 +10,7 @@ QMAKE_APPLE_DEVICE_ARCHS = x86_64
+ 
+ # Should be 10.15, but as long as the CI builds with
+ # older SDKs we have to keep this.
+-QT_MAC_SDK_VERSION_MIN = 10.14
++QT_MAC_SDK_VERSION_MIN = 10.12
+ 
+ QT_MAC_SDK_VERSION_MAX = 10.15
+ 
+diff --git a/src/corelib/kernel/qcore_mac.mm b/src/corelib/kernel/qcore_mac.mm
+--- a/src/corelib/kernel/qcore_mac.mm
++++ b/src/corelib/kernel/qcore_mac.mm
+@@ -261,16 +261,10 @@ QMacAutoReleasePool::QMacAutoReleasePool()
+ 
+ #ifdef QT_DEBUG
+     void *poolFrame = nullptr;
+-    if (__builtin_available(macOS 10.14, iOS 12.0, tvOS 12.0, watchOS 5.0, *)) {
+-        void *frame;
+-        if (backtrace_from_fp(__builtin_frame_address(0), &frame, 1))
+-            poolFrame = frame;
+-    } else {
+         static const int maxFrames = 3;
+         void *callstack[maxFrames];
+         if (backtrace(callstack, maxFrames) == maxFrames)
+             poolFrame = callstack[maxFrames - 1];
+-    }
+ 
+     if (poolFrame) {
+         Dl_info info;
+diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp
+--- a/src/gui/rhi/qrhi.cpp
++++ b/src/gui/rhi/qrhi.cpp
+@@ -4251,7 +4251,7 @@ QRhi *QRhi::create(Implementation impl, QRhiInitParams *params, Flags flags, QRh
+         break;
+ #endif
+     case Metal:
+-#if defined(Q_OS_MACOS) || defined(Q_OS_IOS)
++#if 0
+         r->d = new QRhiMetal(static_cast<QRhiMetalInitParams *>(params),
+                              static_cast<QRhiMetalNativeHandles *>(importDevice));
+         break;
+diff --git a/src/gui/rhi/rhi.pri b/src/gui/rhi/rhi.pri
+--- a/src/gui/rhi/rhi.pri
++++ b/src/gui/rhi/rhi.pri
+@@ -43,7 +43,7 @@ win32 {
+     LIBS += -ld3d11 -ldxgi -ldxguid
+ }
+ 
+-macos|ios {
++false {
+     HEADERS += \
+         rhi/qrhimetal_p.h \
+         rhi/qrhimetal_p_p.h
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -133,7 +133,7 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()];
+     Q_ASSERT(dragImage);
+ 
+-    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
++    QMacPasteboard dragBoard((CFStringRef) NSDragPboard, QMacInternalPasteboardMime::MIME_DND);
+     m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
+     dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
+ 
+@@ -144,7 +144,7 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     CGFloat flippedY = dragImage.size.height - hotSpot.y();
+     event_location.y -= flippedY;
+     NSSize mouseOffset_unused = NSMakeSize(0.0, 0.0);
+-    NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
++    NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
+ 
+     [theWindow dragImage:dragImage
+         at:event_location
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix
index c88e896286ee..70e9c3a80225 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -4,339 +4,339 @@
 
 {
   qt3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qt3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "61856f0c453b79e98b7a1e65ea8f59976fa78230ffa8dec959b5f4b45383dffd";
-      name = "qt3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qt3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "03ed6a48c813c75296c19f5d721184ab168280b69d2656cf16f877d3d4c55c1d";
+      name = "qt3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtactiveqt-everywhere-src-5.15.0.tar.xz";
-      sha256 = "1b455eacfb9ef49912d7a79040ea409a6ab88dfa192d313e6b5e02a79d741b51";
-      name = "qtactiveqt-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtactiveqt-everywhere-src-5.15.2.tar.xz";
+      sha256 = "868161fee0876d17079cd5bed58d1667bf19ffd0018cbe515129f11510ad2a5c";
+      name = "qtactiveqt-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtandroidextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtandroidextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c9019185221e94e37e250c84acaebfb7b2f5342e8ad60cdcff052ac2b85ec671";
-      name = "qtandroidextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtandroidextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "5813278690d89a9c232eccf697fc280034de6f9f02a7c40d95ad5fcf8ac8dabd";
+      name = "qtandroidextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtbase = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5";
-      name = "qtbase-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtbase-everywhere-src-5.15.2.tar.xz";
+      sha256 = "909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8";
+      name = "qtbase-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtcharts = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtcharts-everywhere-src-5.15.0.tar.xz";
-      sha256 = "44a24fc16abcaf9ae97ecf3215f6f3b44ebdb3b73bcb4ed3549a51519e4883a7";
-      name = "qtcharts-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtcharts-everywhere-src-5.15.2.tar.xz";
+      sha256 = "e0750e4195bd8a8b9758ab4d98d437edbe273cd3d289dd6a8f325df6d13f3d11";
+      name = "qtcharts-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtconnectivity-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f911fb8f8bf3a9958785d0378d25ced8989047938b7138d619854a94fa0b27dd";
-      name = "qtconnectivity-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtconnectivity-everywhere-src-5.15.2.tar.xz";
+      sha256 = "0380327871f76103e5b8c2a305988d76d352b6a982b3e7b3bc3cdc184c64bfa0";
+      name = "qtconnectivity-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdatavis3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "8f07747f371f7c515c667240a795105c89aa83c08d88ee92fa1ef7efccea10a3";
-      name = "qtdatavis3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdatavis3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "226a6575d573ad78aca459709722c496c23aee526aa0c38eb7c93b0bea1eb6fd";
+      name = "qtdatavis3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdeclarative-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699";
-      name = "qtdeclarative-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdeclarative-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c600d09716940f75d684f61c5bdaced797f623a86db1627da599027f6c635651";
+      name = "qtdeclarative-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdoc = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdoc-everywhere-src-5.15.0.tar.xz";
-      sha256 = "07ca8db98c317f25cc9a041c48a6824baf63893bf5b535d6f8d266dea8c7659f";
-      name = "qtdoc-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdoc-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a47809f00f1bd690ca4e699cb32ffe7717d43da84e0167d1f562210da7714ce4";
+      name = "qtdoc-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtgamepad = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgamepad-everywhere-src-5.15.0.tar.xz";
-      sha256 = "dda54d9f90897944bed5e6af48a904a677fd97eb6f57ab08a2b232c431caf31a";
-      name = "qtgamepad-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtgamepad-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c77611f7898326d69176ad67a9b886f617cdedc368ec29f223d63537d25b075c";
+      name = "qtgamepad-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtgraphicaleffects = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
-      sha256 = "0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda";
-      name = "qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtgraphicaleffects-everywhere-src-5.15.2.tar.xz";
+      sha256 = "ec8d67f64967d5046410490b549c576f9b9e8b47ec68594ae84aa8870173dfe4";
+      name = "qtgraphicaleffects-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtimageformats = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtimageformats-everywhere-src-5.15.0.tar.xz";
-      sha256 = "83f32101b1a898fcb8ed6f11a657d1125484ac0c2223014b61849d9010efebc8";
-      name = "qtimageformats-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtimageformats-everywhere-src-5.15.2.tar.xz";
+      sha256 = "bf8285c7ce04284527ab823ddc7cf48a1bb79131db3a7127342167f4814253d7";
+      name = "qtimageformats-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtlocation = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlocation-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c68b0778a521e5522641c41b1778999dd408ebfda1e0de166a83743268be5f3f";
-      name = "qtlocation-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtlocation-everywhere-src-5.15.2.tar.xz";
+      sha256 = "984fcb09e108df49a8dac35d5ce6dffc49caafd2acb1c2f8a5173a6a21f392a0";
+      name = "qtlocation-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtlottie = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlottie-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2053f474dcd7184fdcae2507f47af6527f6ca25b4424483f9265853c3626c833";
-      name = "qtlottie-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtlottie-everywhere-src-5.15.2.tar.xz";
+      sha256 = "cec6095ab8f714e609d2ad3ea8c4fd819461ce8793adc42abe37d0f6dc432517";
+      name = "qtlottie-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtmacextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmacextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "95a8c35b30373224cdd6d1ca0bdda1a314b20e91551a4824e8ca7e50ce8ff439";
-      name = "qtmacextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtmacextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "6959b0f2cec71cd66800f36cab797430860e55fa33c9c23698d6a08fc2b8776e";
+      name = "qtmacextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmultimedia-everywhere-src-5.15.0.tar.xz";
-      sha256 = "0708d867697f392dd3600c5c1c88f5c61b772a5250a4d059dca67b844af0fbd7";
-      name = "qtmultimedia-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtmultimedia-everywhere-src-5.15.2.tar.xz";
+      sha256 = "0c3758810e5131aabcf76e4965e4c18b8911af54d9edd9305d2a8278d8346df5";
+      name = "qtmultimedia-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtnetworkauth-everywhere-src-5.15.0.tar.xz";
-      sha256 = "96c6107f6e85662a05f114c5b9bd3503a3100bd940e1494c73a99e77f9e7cf85";
-      name = "qtnetworkauth-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtnetworkauth-everywhere-src-5.15.2.tar.xz";
+      sha256 = "fcc2ec42faa68561efa8f00cd72e662fbc06563ebc6de1dc42d96bb2997acd85";
+      name = "qtnetworkauth-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtpurchasing = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtpurchasing-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2127f180c4889055d88e2b402b62be80a5a213a0e48d2056cc9a01d9913b3a16";
-      name = "qtpurchasing-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtpurchasing-everywhere-src-5.15.2.tar.xz";
+      sha256 = "87120d319ff2f8106e78971f7296d72a66dfe91e763d213199aea55046e93227";
+      name = "qtpurchasing-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquick3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquick3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "6d3b91b653ba5e33fd5b37cd785ded6cf1dd83d35250c3addb77eb35f90e52cb";
-      name = "qtquick3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquick3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "5b0546323365ce34e4716f22f305ebb4902e222c1a0910b65ee448443c2f94bb";
+      name = "qtquick3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquickcontrols = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols-everywhere-src-5.15.0.tar.xz";
-      sha256 = "7072cf4cd27e9f18b36b1c48dec7c79608cf87ba847d3fc3de133f220ec1acee";
-      name = "qtquickcontrols-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c393fb7384b1f047f10e91a6832cf3e6a4c2a41408b8cb2d05af2283e8549fb5";
+      name = "qtquickcontrols-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquickcontrols2 = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
-      sha256 = "839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f";
-      name = "qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols2-everywhere-src-5.15.2.tar.xz";
+      sha256 = "671b6ce5f4b8ecc94db622d5d5fb29ef4ff92819be08e5ea55bfcab579de8919";
+      name = "qtquickcontrols2-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquicktimeline = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquicktimeline-everywhere-src-5.15.0.tar.xz";
-      sha256 = "16ffeb733ba15815121fca5705ed5220ce0a0eb2ec0431ad0d55da9426a03c00";
-      name = "qtquicktimeline-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquicktimeline-everywhere-src-5.15.2.tar.xz";
+      sha256 = "b9c247227607437acec7c7dd18ad46179d20369c9d22bdb1e9fc128dfb832a28";
+      name = "qtquicktimeline-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtremoteobjects-everywhere-src-5.15.0.tar.xz";
-      sha256 = "86fcfdce77f13c7babdec4dc1d0c4b7b6b02e40120a4250dc59e911c53c08abf";
-      name = "qtremoteobjects-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtremoteobjects-everywhere-src-5.15.2.tar.xz";
+      sha256 = "6781b6bc90888254ea77ce812736dac00c67fa4eeb3095f5cd65e4b9c15dcfc2";
+      name = "qtremoteobjects-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtscript = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscript-everywhere-src-5.15.0.tar.xz";
-      sha256 = "02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373";
-      name = "qtscript-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtscript-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a299715369afbd1caa4d7fa2875d442eab91adcaacafce54a36922442624673e";
+      name = "qtscript-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtscxml = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscxml-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9c3a72bf5ebd07553b0049cc1943f04cff93b7e53bde8c81d652422dbf12ff72";
-      name = "qtscxml-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtscxml-everywhere-src-5.15.2.tar.xz";
+      sha256 = "60b9590b9a41c60cee7b8a8c8410ee4625f0389c1ff8d79883ec5a985638a7dc";
+      name = "qtscxml-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtsensors = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsensors-everywhere-src-5.15.0.tar.xz";
-      sha256 = "12b17ed6cbe6c49c8ab71958bc5d8ad1c42bf20e2fa72613ede11001e98144da";
-      name = "qtsensors-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtsensors-everywhere-src-5.15.2.tar.xz";
+      sha256 = "3f0011f9e9942cad119146b54d960438f4568a22a274cdad4fae06bb4e0e4839";
+      name = "qtsensors-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtserialbus = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialbus-everywhere-src-5.15.0.tar.xz";
-      sha256 = "cee067c84d025e221b83d109b58ea16c4d2dc0af0aea45cc6724acd33a1b7379";
-      name = "qtserialbus-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtserialbus-everywhere-src-5.15.2.tar.xz";
+      sha256 = "aeeb7e5c0d3f8503215b22e1a84c0002ca67cf63862f6e3c6ef44a67ca31bd88";
+      name = "qtserialbus-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtserialport = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialport-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ba19369069a707dffddca8d9c477bb2bb4aa26630dfee6792254c4bf9bd57a67";
-      name = "qtserialport-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtserialport-everywhere-src-5.15.2.tar.xz";
+      sha256 = "59c559d748417306bc1b2cf2315c1e63eed011ace38ad92946af71f23e2ef79d";
+      name = "qtserialport-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtspeech = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtspeech-everywhere-src-5.15.0.tar.xz";
-      sha256 = "7219a878c14a24d0ca18d52df1717361b13aee96ac9790baf9ad2b383492dd61";
-      name = "qtspeech-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtspeech-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c810fb9eecb08026434422a32e79269627f3bc2941be199e86ec410bdfe883f5";
+      name = "qtspeech-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtsvg = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ee4d287e2e205ca8c08921b9cbe0fc58bf46be080b5359ad4d7fbdee44aeee0d";
-      name = "qtsvg-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtsvg-everywhere-src-5.15.2.tar.xz";
+      sha256 = "8bc3c2c1bc2671e9c67d4205589a8309b57903721ad14c60ea21a5d06acb585e";
+      name = "qtsvg-everywhere-src-5.15.2.tar.xz";
     };
   };
   qttools = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437";
-      name = "qttools-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qttools-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c189d0ce1ff7c739db9a3ace52ac3e24cb8fd6dbf234e49f075249b38f43c1cc";
+      name = "qttools-everywhere-src-5.15.2.tar.xz";
     };
   };
   qttranslations = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttranslations-everywhere-src-5.15.0.tar.xz";
-      sha256 = "45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe";
-      name = "qttranslations-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qttranslations-everywhere-src-5.15.2.tar.xz";
+      sha256 = "d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8";
+      name = "qttranslations-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f22f9204ab65578d9c8aa832a8a39108f826e00a7d391c7884ff490c587f34be";
-      name = "qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz";
+      sha256 = "9a3193913be30f09a896e3b8c2f9696d2e9b3f88a63ae9ca8c97a2786b68cf55";
+      name = "qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwayland = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwayland-everywhere-src-5.15.0.tar.xz";
-      sha256 = "084133e10bfbd32a28125639660c59975f23457bba6a79b30a25802cec76a9fb";
-      name = "qtwayland-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwayland-everywhere-src-5.15.2.tar.xz";
+      sha256 = "193732229ff816f3aaab9a5e2f6bed71ddddbf1988ce003fe8dd84a92ce9aeb5";
+      name = "qtwayland-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebchannel-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ea80510b363e6f92ce99932f06d176e43459c4a5159fe97b5ef96fcfbab5ed4f";
-      name = "qtwebchannel-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebchannel-everywhere-src-5.15.2.tar.xz";
+      sha256 = "127fe79c43b386713f151ed7d411cd81e45e29f9c955584f29736f78c9303ec1";
+      name = "qtwebchannel-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebengine = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebengine-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df";
-      name = "qtwebengine-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebengine-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c8afca0e43d84f7bd595436fbe4d13a5bbdb81ec5104d605085d07545b6f91e0";
+      name = "qtwebengine-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebglplugin = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebglplugin-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f7b81f25ddf7b3a0046daa7224bc1e18c8b754b00b1a33775f30f827a5cdca15";
-      name = "qtwebglplugin-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebglplugin-everywhere-src-5.15.2.tar.xz";
+      sha256 = "81e782b517ed29e10bea1aa90c9f59274c98a910f2c8b105fa78368a36b41446";
+      name = "qtwebglplugin-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebsockets = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebsockets-everywhere-src-5.15.0.tar.xz";
-      sha256 = "87c2f6542778f9b65b3f208740c1d0db643fd0bede21404b9abb265355da5092";
-      name = "qtwebsockets-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebsockets-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a0b42d85dd34ff6e2d23400e02f83d8b85bcd80e60efd1521d12d9625d4a233f";
+      name = "qtwebsockets-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebview = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebview-everywhere-src-5.15.0.tar.xz";
-      sha256 = "b87ea205ce79c6b438ebe596e91fa80ba11f6aac7e89ffbf52b337d0fc8d6660";
-      name = "qtwebview-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebview-everywhere-src-5.15.2.tar.xz";
+      sha256 = "be9f46167e4977ead5ef5ecf883fdb812a4120f2436383583792f65557e481e7";
+      name = "qtwebview-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwinextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwinextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "d77f2cb2ce83bdbfd0a970bc8d7d11c96b2df16befc257d6594f79dfd92abff0";
-      name = "qtwinextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwinextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "65b8272005dec00791ab7d81ab266d1e3313a3bbd8e54e546d984cf4c4ab550e";
+      name = "qtwinextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtx11extras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtx11extras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c72b6c188284facddcf82835af048240e721dc8d6d9e8a7bd71d76fd876881a1";
-      name = "qtx11extras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtx11extras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "7014702ee9a644a5a93da70848ac47c18851d4f8ed622b29a72eed9282fc6e3e";
+      name = "qtx11extras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtxmlpatterns = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2752cf2aa25ebfda89c3736457e27b3d0c7c7ed290dcfd52c209f9f905998507";
-      name = "qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtxmlpatterns-everywhere-src-5.15.2.tar.xz";
+      sha256 = "76ea2162a7c349188d7e7e4f6c77b78e8a205494c90fee3cea3487a1ae2cf2fa";
+      name = "qtxmlpatterns-everywhere-src-5.15.2.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh b/nixpkgs/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
index 5acaeb824466..6aaeda052d70 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
+++ b/nixpkgs/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
@@ -5,8 +5,19 @@
 fixQmakeLibtool() {
     if [ -d "$1" ]; then
         find "$1" -name '*.la' | while read la; do
+            set +e
+            framework_libs=$(grep '^dependency_libs' "$la" | grep -Eo -- '-framework +\w+' | tr '\n' ' ')
+            set -e
             sed -i "$la" \
-                -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g'
+                -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' \
+                -e '/^dependency_libs/ s,-framework \+\w\+,,g'
+            if [ ! -z "$framework_libs" ]; then
+                if grep '^inherited_linker_flags=' $la >/dev/null; then
+                    sed -i "$la" -e "s/^\(inherited_linker_flags='[^']*\)/\1 $framework_libs/"
+                else
+                    echo "inherited_linker_flags='$framework_libs'" >> "$la"
+                fi
+            fi
         done
     fi
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
index 0eee684a53fd..a80785d8099a 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
@@ -10,5 +10,4 @@ qtModule {
      # https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
      "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
   ];
-
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 049b0349a4f8..b98b711c0f5d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -1,5 +1,5 @@
-{ qtModule, qtCompatVersion,
-  qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
+{ qtModule
+, qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
 
 , bison, coreutils, flex, git, gperf, ninja, pkgconfig, python2, which
 
@@ -38,30 +38,11 @@ qtModule {
   # which cannot be set at the same time as -Wformat-security
   hardeningDisable = [ "format" ];
 
-  patches = [
-    # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
-    (fetchpatch {
-      name = "qtwebengine-bison-3.7-build.patch";
-      url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
-      sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
-      stripLen = 1;
-      extraPrefix = "src/3rdparty/";
-    })
-  ];
-
   postPatch =
     # Patch Chromium build tools
     ''
       ( cd src/3rdparty/chromium; patchShebangs . )
     ''
-    # Patch Chromium build files
-    + optionalString (lib.versionOlder qtCompatVersion "5.12") ''
-      substituteInPlace ./src/3rdparty/chromium/build/common.gypi --replace /bin/echo ${coreutils}/bin/echo
-      substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/toolchain.gypi \
-        --replace /bin/echo ${coreutils}/bin/echo
-      substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/standalone.gypi \
-        --replace /bin/echo ${coreutils}/bin/echo
-    ''
     # Prevent Chromium build script from making the path to `clang` relative to
     # the build directory.  `clang_base_path` is the value of `QMAKE_CLANG_DIR`
     # from `src/core/config/mac_osx.pri`.
@@ -91,10 +72,10 @@ qtModule {
     ''
      # Following is required to prevent a build error:
      # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it
-    + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") ''
+    + ''
       substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \
         --replace '$sysroot/usr' "${darwin.xnu}"
-    '')
+    ''
     + ''
     # Apple has some secret stuff they don't share with OpenBSM
     substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
index b31e57f38065..3d9e72bb54fa 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
@@ -72,7 +72,6 @@ qtModule {
   preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
 
   meta = {
-    broken = lib.versionAtLeast qtbase.version "5.15";
     maintainers = with stdenv.lib.maintainers; [ abbradar periklis ];
   };
 }