diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix | 134 |
1 files changed, 70 insertions, 64 deletions
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 5d8688cfdc75..3b8540ca68fe 100644 --- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix @@ -14,21 +14,18 @@ top-level attribute to `top-level/all-packages.nix`. */ -{ - newScope, - lib, stdenv, fetchurl, fetchpatch, fetchgit, fetchFromGitHub, makeSetupHook, makeWrapper, - bison, cups ? null, harfbuzz, libGL, perl, - gstreamer, gst-plugins-base, gtk3, dconf, - llvmPackages_5, +{ newScope +, lib, stdenv, fetchurl, fetchgit, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper +, bison, cups ? null, harfbuzz, libGL, perl +, gstreamer, gst-plugins-base, gtk3, dconf +, llvmPackages_5, darwin # options - developerBuild ? false, - decryptSslTraffic ? false, - debug ? false, +, developerBuild ? false +, decryptSslTraffic ? false +, debug ? false }: -with lib; - let qtCompatVersion = srcs.qtbase.version; @@ -49,25 +46,21 @@ let version = "5.212.0-alpha4"; }; - # Even if developed in the public, QtWebEngine does not have official - # releases or new tags since the Qt company made 5.15.3 proprietary. - # Apparently they care more about licensing than the security of their users. - # See https://lists.qt-project.org/pipermail/interest/2021-March/036387.html qtwebengine = let - branchName = "5.15.3"; - rev = "a059e7404a6db799f4da0ad696e65ae9c854b4b0"; + branchName = "5.15.5"; + rev = "v${branchName}-lts"; in { version = "${branchName}-${lib.substring 0 7 rev}"; src = fetchgit { url = "https://github.com/qt/qtwebengine.git"; - sha256 = "1vdgxfbmx4z4qrm2g61dl64gqn3fv5f83jwpp7h1gyfx5z2qvfmv"; + sha256 = "12wf30d34sgn82mbz91xybxyn3j1mhvxda452cfkxm232n1f2kjb"; inherit rev branchName; fetchSubmodules = true; leaveDotGit = true; - name = "qtwebengine-${substring 0 7 rev}.tar.gz"; + name = "qtwebengine-${lib.substring 0 7 rev}.tar.gz"; postFetch = '' # remove submodule .git directory rm -rf $out/src/3rdparty/.git @@ -87,51 +80,49 @@ let }; patches = { - qtbase = - optionals stdenv.isDarwin [ - ./qtbase.patch.d/0001-qtbase-mkspecs-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 - ./qtbase.patch.d/0004-qtbase-replace-libdir.patch - ./qtbase.patch.d/0005-qtbase-cmake.patch - ./qtbase.patch.d/0006-qtbase-gtk3.patch - ./qtbase.patch.d/0007-qtbase-xcursor.patch - ./qtbase.patch.d/0008-qtbase-tzdir.patch - ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch - ./qtbase.patch.d/0010-qtbase-assert.patch - ./qtbase.patch.d/0011-fix-header_module.patch - ]; + qtbase = lib.optionals stdenv.isDarwin [ + ./qtbase.patch.d/0001-qtbase-mkspecs-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 + ./qtbase.patch.d/0004-qtbase-replace-libdir.patch + ./qtbase.patch.d/0005-qtbase-cmake.patch + ./qtbase.patch.d/0006-qtbase-gtk3.patch + ./qtbase.patch.d/0007-qtbase-xcursor.patch + ./qtbase.patch.d/0008-qtbase-tzdir.patch + ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch + ./qtbase.patch.d/0010-qtbase-assert.patch + ./qtbase.patch.d/0011-fix-header_module.patch + (fetchpatch { # This can be removed when https://codereview.qt-project.org/c/qt/qtbase/+/339323 is included in an release. + name = "0014-gcc11-compat.patch"; + url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=049e14870c13235cd066758f29c42dc96c1ccdf8"; + sha256 = "1cb2hwi859hds0fa2cbap014qaa7mah9p0rcxcm2cvj2ybl33qfc"; + }) + ]; qtdeclarative = [ ./qtdeclarative.patch ]; qtscript = [ ./qtscript.patch ]; qtserialport = [ ./qtserialport.patch ]; qtwebengine = [ - # Fix crashes with non en_US.UTF-8 locales - (fetchpatch { - url = "https://github.com/qt/qtwebengine/commit/199ea00a9eea13315a652c62778738629185b059.patch"; - sha256 = "1b5k2g1v8913cvsgvp6ja4mcprjlk5vcwqzi0p1qq7b1wyi4f0g2"; - }) # Fix invisible fonts with glibc 2.33: https://github.com/NixOS/nixpkgs/issues/131074 (fetchpatch { url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/d122c011631137b79455850c363676c655cf9e09/f/qtwebengine-everywhere-src-5.15.5-%231904652.patch"; name = "qtwebengine-everywhere-src-5.15.5-_1904652.patch"; sha256 = "01q7hagq0ysii1jnrh5adm97vdm9cis592xr6im7accyw6hgcn7b"; }) - ] ++ optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin [ ./qtwebengine-darwin-no-platform-check.patch ./qtwebengine-mac-dont-set-dsymutil-path.patch ]; @@ -148,7 +139,7 @@ let }) ./qtwebkit.patch ./qtwebkit-icu68.patch - ] ++ optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin [ ./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-qos-classes.patch ]; @@ -174,6 +165,8 @@ let callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; }; in { + inherit callPackage qtCompatVersion qtModule srcs; + mkDerivationWith = import ../mkDerivation.nix { inherit lib; inherit debug; inherit (self) wrapQtAppsHook; }; @@ -186,8 +179,12 @@ let inherit bison cups harfbuzz libGL; withGtk3 = true; inherit dconf gtk3; inherit developerBuild decryptSslTraffic; + inherit (darwin.apple_sdk.frameworks) AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth + CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit; + inherit (darwin) libobjc; }; + qt3d = callPackage ../modules/qt3d.nix {}; qtcharts = callPackage ../modules/qtcharts.nix {}; qtconnectivity = callPackage ../modules/qtconnectivity.nix {}; qtdeclarative = callPackage ../modules/qtdeclarative.nix {}; @@ -206,6 +203,7 @@ let qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {}; qtscript = callPackage ../modules/qtscript.nix {}; qtsensors = callPackage ../modules/qtsensors.nix {}; + qtserialbus = callPackage ../modules/qtserialbus.nix {}; qtserialport = callPackage ../modules/qtserialport.nix {}; qtspeech = callPackage ../modules/qtspeech.nix {}; qtsvg = callPackage ../modules/qtsvg.nix {}; @@ -217,23 +215,32 @@ let qtwebchannel = callPackage ../modules/qtwebchannel.nix {}; qtwebengine = callPackage ../modules/qtwebengine.nix { inherit (srcs.qtwebengine) version; + inherit (darwin) cctools libobjc libunwind xnu; + inherit (darwin.apple_sdk.libs) sandbox; + inherit (darwin.apple_sdk.frameworks) ApplicationServices AVFoundation Foundation ForceFeedback GameController AppKit + ImageCaptureCore CoreBluetooth IOBluetooth CoreWLAN Quartz Cocoa LocalAuthentication; }; qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {}; - qtwebkit = callPackage ../modules/qtwebkit.nix {}; + qtwebkit = callPackage ../modules/qtwebkit.nix { + inherit (darwin) ICU; + inherit (darwin.apple_sdk.frameworks) OpenGL; + }; qtwebsockets = callPackage ../modules/qtwebsockets.nix {}; - qtwebview = callPackage ../modules/qtwebview.nix {}; + qtwebview = callPackage ../modules/qtwebview.nix { + inherit (darwin.apple_sdk.frameworks) CoreFoundation WebKit; + }; qtx11extras = callPackage ../modules/qtx11extras.nix {}; qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {}; env = callPackage ../qt-env.nix {}; full = env "qt-full-${qtbase.version}" ([ - qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects + qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtscript qtsensors qtserialport qtsvg qttools qttranslations qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets qtwebview qtx11extras qtxmlpatterns - ] ++ optional (!stdenv.isDarwin) qtwayland - ++ optional (stdenv.isDarwin) qtmacextras); + ] ++ lib.optional (!stdenv.isDarwin) qtwayland + ++ lib.optional (stdenv.isDarwin) qtmacextras); qmake = makeSetupHook { deps = [ self.qtbase.dev ]; @@ -244,12 +251,11 @@ let } ../hooks/qmake-hook.sh; wrapQtAppsHook = makeSetupHook { - deps = - [ self.qtbase.dev makeWrapper ] - ++ optional stdenv.isLinux self.qtwayland.dev; + deps = [ self.qtbase.dev makeWrapper ] + ++ lib.optional stdenv.isLinux self.qtwayland.dev; } ../hooks/wrap-qt-apps-hook.sh; }; - self = makeScope newScope addPackages; + self = lib.makeScope newScope addPackages; in self |