diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index 2f57b1c62de4..240e914241ed 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -250,23 +250,15 @@ let inherit bison cups harfbuzz libGL; withGtk3 = !stdenv.hostPlatform.isDarwin; inherit dconf gtk3; inherit developerBuild decryptSslTraffic; - inherit (darwin.apple_sdk_11_0.frameworks) AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth - CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit; - libobjc = darwin.apple_sdk_11_0.objc4; - xcbuild = darwin.apple_sdk_11_0.xcodebuild; }; qt3d = callPackage ../modules/qt3d.nix {}; qtcharts = callPackage ../modules/qtcharts.nix {}; - qtconnectivity = callPackage ../modules/qtconnectivity.nix { - inherit (darwin.apple_sdk_11_0.frameworks) IOBluetooth; - }; + qtconnectivity = callPackage ../modules/qtconnectivity.nix { }; qtdatavis3d = callPackage ../modules/qtdatavis3d.nix {}; qtdeclarative = callPackage ../modules/qtdeclarative.nix {}; qtdoc = callPackage ../modules/qtdoc.nix {}; - qtgamepad = callPackage ../modules/qtgamepad.nix { - inherit (darwin.apple_sdk_11_0.frameworks) GameController; - }; + qtgamepad = callPackage ../modules/qtgamepad.nix { }; qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {}; qtimageformats = callPackage ../modules/qtimageformats.nix {}; qtlocation = callPackage ../modules/qtlocation.nix {}; @@ -278,9 +270,7 @@ let qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {}; qtpim = callPackage ../modules/qtpim.nix {}; qtpositioning = callPackage ../modules/qtpositioning.nix {}; - qtpurchasing = callPackage ../modules/qtpurchasing.nix { - inherit (darwin.apple_sdk_11_0.frameworks) Foundation StoreKit; - }; + qtpurchasing = callPackage ../modules/qtpurchasing.nix { }; qtquick1 = null; qtquick3d = callPackage ../modules/qtquick3d.nix { }; qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {}; @@ -309,28 +299,15 @@ let # starting with clang 16. Patches are available upstream that can be backported. # Because the first error is non-trivial to fix and suppressing it risks future breakage, # clang is pinned to clang 15. That also makes fixing the second set of errors unnecessary. - stdenv = - let stdenv' = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv; - in if stdenv'.hostPlatform.isDarwin then overrideSDK stdenv' "11.0" else stdenv'; + stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv; inherit (srcs.qtwebengine) version; + inherit (darwin) bootstrap_cmds; python = python3; - inherit (darwin) xnu; - inherit (darwin.apple_sdk_11_0) libpm libunwind; - inherit (darwin.apple_sdk_11_0.libs) sandbox; - inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices AVFoundation Foundation ForceFeedback GameController AppKit - ImageCaptureCore CoreBluetooth IOBluetooth CoreWLAN Quartz Cocoa LocalAuthentication - MediaPlayer MediaAccessibility SecurityInterface Vision CoreML OpenDirectory Accelerate; - libobjc = darwin.apple_sdk_11_0.objc4; }; qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {}; - qtwebkit = callPackage ../modules/qtwebkit.nix { - inherit (darwin) ICU; - inherit (darwin.apple_sdk_11_0.frameworks) OpenGL; - }; + qtwebkit = callPackage ../modules/qtwebkit.nix { }; qtwebsockets = callPackage ../modules/qtwebsockets.nix {}; - qtwebview = callPackage ../modules/qtwebview.nix { - inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation WebKit; - }; + qtwebview = callPackage ../modules/qtwebview.nix { }; qtx11extras = callPackage ../modules/qtx11extras.nix {}; qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {}; diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index 7aef466b7937..0dadaeeaf916 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -4,8 +4,7 @@ , coreutils, bison, flex, gdb, gperf, lndir, perl, pkg-config, python3 , which # darwin support -, libiconv, libobjc, xcbuild, AGL, AppKit, ApplicationServices, AVFoundation, Carbon, Cocoa, CoreAudio, CoreBluetooth -, CoreLocation, CoreServices, DiskArbitration, Foundation, OpenGL, MetalKit, IOKit +, darwinMinVersionHook, apple-sdk, apple-sdk_10_14, apple-sdk_14, xcbuild , dbus, fontconfig, freetype, glib, harfbuzz, icu, libdrm, libX11, libXcomposite , libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng , libxcb @@ -38,6 +37,13 @@ let if isLinux then "linux-generic-g++" else throw "Please add a qtPlatformCross entry for ${plat.config}"; + + # Per https://doc.qt.io/qt-5/macos.html#supported-versions: deployment target = 10.13, build SDK = 14.x. + # Note that Qt propagates the 10.14 SDK instead of the 10.13 SDK to make sure that applications linked to Qt + # support automatic dark mode on x86_64-darwin (see: https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app). + propagatedAppleSDK = if lib.versionOlder (lib.getVersion apple-sdk) "10.14" then apple-sdk_10_14 else apple-sdk; + propagatedMinVersionHook = darwinMinVersionHook "10.13"; + buildAppleSDK = apple-sdk_14; in stdenv.mkDerivation (finalAttrs: ({ @@ -56,10 +62,8 @@ stdenv.mkDerivation (finalAttrs: ({ pcre2 ] ++ ( if stdenv.hostPlatform.isDarwin then [ - # TODO: move to buildInputs, this should not be propagated. - AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth - CoreLocation CoreServices DiskArbitration Foundation OpenGL - libobjc libiconv MetalKit IOKit + propagatedAppleSDK + propagatedMinVersionHook ] else [ dbus glib udev @@ -80,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: ({ [ libinput ] ++ lib.optional withGtk3 gtk3 ) + ++ lib.optional stdenv.isDarwin buildAppleSDK ++ lib.optional developerBuild gdb ++ lib.optional (cups != null) cups ++ lib.optional (mysqlSupport) libmysqlclient @@ -141,15 +146,13 @@ stdenv.mkDerivation (finalAttrs: ({ patchShebangs ./bin '' + ( if stdenv.hostPlatform.isDarwin then '' - sed -i \ - -e 's|/usr/bin/xcode-select|xcode-select|' \ - -e 's|/usr/bin/xcrun|xcrun|' \ - -e 's|/usr/bin/xcodebuild|xcodebuild|' \ - -e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \ - ./configure - substituteInPlace ./mkspecs/common/mac.conf \ - --replace "/System/Library/Frameworks/OpenGL.framework/" "${OpenGL}/Library/Frameworks/OpenGL.framework/" \ - --replace "/System/Library/Frameworks/AGL.framework/" "${AGL}/Library/Frameworks/AGL.framework/" + substituteInPlace configure \ + --replace-fail '/usr/bin/xcode-select' '${lib.getBin xcbuild}/bin/xcode-select' \ + --replace-fail '/usr/bin/xcrun' '${lib.getBin xcbuild}/bin/xcrun' \ + --replace-fail '/System/Library/Frameworks/Cocoa.framework' "$SDKROOT/System/Library/Frameworks/Cocoa.framework" + substituteInPlace ./mkspecs/common/mac.conf \ + --replace-fail "/System/Library/Frameworks/OpenGL.framework/" "$SDKROOT/System/Library/Frameworks/OpenGL.framework/" \ + --replace-fail "/System/Library/Frameworks/AGL.framework/" "$SDKROOT/System/Library/Frameworks/AGL.framework/" '' else lib.optionalString libGLSupported '' sed -i mkspecs/common/linux.conf \ -e "/^QMAKE_INCDIR_OPENGL/ s|$|${lib.getDev libGL}/include|" \ diff --git a/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix b/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix index d61619613eba..77f1fa38c300 100644 --- a/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix @@ -1,4 +1,4 @@ -{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez, IOBluetooth }: +{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez }: qtModule { pname = "qtconnectivity"; @@ -6,8 +6,6 @@ qtModule { propagatedBuildInputs = [ qtbase qtdeclarative - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - IOBluetooth ]; outputs = [ "out" "dev" "bin" ]; } diff --git a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix index c83e41be2af8..09fd6490eeb4 100644 --- a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix +++ b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix @@ -1,9 +1,8 @@ -{ lib, stdenv, qtModule, qtbase, qtdeclarative, GameController, pkg-config }: +{ qtModule, qtbase, qtdeclarative, pkg-config }: qtModule { pname = "qtgamepad"; - propagatedBuildInputs = [ qtbase qtdeclarative ] - ++ lib.optional stdenv.hostPlatform.isDarwin GameController; + propagatedBuildInputs = [ qtbase qtdeclarative ]; nativeBuildInputs = [ pkg-config ]; outputs = [ "out" "dev" "bin" ]; } diff --git a/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix b/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix index 3c1661c7b000..10df01285a4f 100644 --- a/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix +++ b/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix @@ -1,14 +1,6 @@ -{ stdenv -, lib -, qtModule -, qtbase -, qtdeclarative -, StoreKit -, Foundation -}: +{ qtModule, qtbase, qtdeclarative }: qtModule { pname = "qtpurchasing"; propagatedBuildInputs = [ qtbase qtdeclarative ]; - buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Foundation StoreKit ]; } diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index 787c0632ea0c..18d9d7459feb 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -20,11 +20,7 @@ , systemd , enableProprietaryCodecs ? true , gn -, cctools, libobjc, libpm, libunwind, sandbox, xnu -, ApplicationServices, AVFoundation, Foundation, ForceFeedback, GameController, AppKit -, ImageCaptureCore, CoreBluetooth, IOBluetooth, CoreWLAN, Quartz, Cocoa, LocalAuthentication -, MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate -, cups, openbsm, xcbuild, writeScriptBin +, apple-sdk_13, cctools, cups, bootstrap_cmds, xcbuild, writeScriptBin , ffmpeg ? null , lib, stdenv , version ? null @@ -55,7 +51,8 @@ let in -qtModule ({ +# Override the SDK because Qt WebEngine doesn’t seem to build using the 14.4 SDK. +(qtModule.override { apple-sdk_for_qt = apple-sdk_13; }) ({ pname = "qtwebengine"; nativeBuildInputs = [ bison flex git gperf ninja pkg-config (python.withPackages(ps: [ ps.html5lib ])) which gn nodejs @@ -65,7 +62,7 @@ qtModule ({ pkgsBuildBuild.pkg-config (lib.getDev pkgsBuildTarget.targetPackages.qt5.qtquickcontrols) pkg-config-wrapped-without-prefix - ] ++ lib.optional stdenv.hostPlatform.isDarwin xcbuild; + ] ++ lib.optional stdenv.hostPlatform.isDarwin [ bootstrap_cmds xcbuild ]; doCheck = true; outputs = [ "bin" "dev" "out" ]; @@ -158,22 +155,6 @@ qtModule ({ substituteInPlace src/buildtools/config/mac_osx.pri \ --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"' - # 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 - substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ - --replace '$sysroot/usr' "${xnu}" - - # Apple has some secret stuff they don't share with OpenBSM - substituteInPlace src/3rdparty/chromium/base/mac/mach_port_rendezvous.cc \ - --replace "audit_token_to_pid(request.trailer.msgh_audit)" "request.trailer.msgh_audit.val[5]" - substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/mach/mach_message.cc \ - --replace "audit_token_to_pid(audit_trailer->msgh_audit)" "audit_trailer->msgh_audit.val[5]" - - # ld: warning: directory not found for option '-L/nix/store/...-xcodebuild-0.1.2-pre/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk/usr/lib' - # ld: fatal warning(s) induced error (-fatal_warnings) - substituteInPlace src/3rdparty/chromium/build/config/compiler/BUILD.gn \ - --replace "-Wl,-fatal_warnings" "" - # Use system ffmpeg echo "gn_args += use_system_ffmpeg=true" >> src/core/config/mac_osx.pri echo "LIBS += -lavformat -lavcodec -lavutil" >> src/core/core_common.pri @@ -257,40 +238,10 @@ qtModule ({ # FIXME These dependencies shouldn't be needed but can't find a way # around it. Chromium pulls this in while bootstrapping GN. - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - libobjc - cctools - - # frameworks - ApplicationServices - AVFoundation - Foundation - ForceFeedback - GameController - AppKit - ImageCaptureCore - CoreBluetooth - IOBluetooth - CoreWLAN - Quartz - Cocoa - LocalAuthentication - MediaPlayer - MediaAccessibility - SecurityInterface - Vision - CoreML - OpenDirectory - Accelerate - - openbsm - libunwind - ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ cctools.libtool ]; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ cups - libpm - sandbox # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py` # to get some information about the host platform. diff --git a/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/pkgs/development/libraries/qt-5/modules/qtwebkit.nix index 3382bca0f982..555635c79522 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebkit.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebkit.nix @@ -3,7 +3,6 @@ , fontconfig, libwebp, libxml2, libxslt , sqlite, systemd, glib, gst_all_1, cmake , bison, flex, gdb, gperf, perl, pkg-config, python3, ruby -, ICU, OpenGL }: let @@ -24,8 +23,7 @@ qtModule { pname = "qtwebkit"; propagatedBuildInputs = [ qtbase qtdeclarative qtlocation qtsensors qtwebchannel ] ++ lib.optional stdenv.hostPlatform.isDarwin qtmultimedia; - buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base hyphen ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ ICU OpenGL ]; + buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base hyphen ]; nativeBuildInputs = [ bison flex gdb gperf perl pkg-config python3 ruby cmake ]; cmakeFlags = [ "-DPORT=Qt" ] diff --git a/pkgs/development/libraries/qt-5/modules/qtwebview.nix b/pkgs/development/libraries/qt-5/modules/qtwebview.nix index 9b1a290ece01..0ff65fa676ca 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebview.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebview.nix @@ -1,12 +1,8 @@ -{ lib, stdenv, qtModule, qtdeclarative, qtwebengine, CoreFoundation, WebKit }: +{ lib, stdenv, qtModule, qtdeclarative, qtwebengine }: qtModule { pname = "qtwebview"; propagatedBuildInputs = [ qtdeclarative qtwebengine ]; - buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ - CoreFoundation - WebKit - ]; outputs = [ "out" "dev" "bin" ]; NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework CoreFoundation -framework WebKit"; } diff --git a/pkgs/development/libraries/qt-5/qtModule.nix b/pkgs/development/libraries/qt-5/qtModule.nix index c2e329b1f11f..ee59ee76d9e9 100644 --- a/pkgs/development/libraries/qt-5/qtModule.nix +++ b/pkgs/development/libraries/qt-5/qtModule.nix @@ -2,6 +2,8 @@ , stdenv , buildPackages , mkDerivation +, apple-sdk_14 +, apple-sdk_for_qt ? apple-sdk_14 , perl , qmake , patches @@ -23,6 +25,11 @@ mkDerivation (args // { inherit pname version src; patches = (args.patches or []) ++ (patches.${pname} or []); + buildInputs = + args.buildInputs or [ ] + # Per https://doc.qt.io/qt-5/macos.html#supported-versions + ++ lib.optionals stdenv.isDarwin [ apple-sdk_for_qt ]; + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ perl qmake diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 1ee93acfe485..f7bdfc98a313 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -26,11 +26,7 @@ let let callPackage = self.newScope ({ inherit (self) qtModule; - inherit srcs python3; - stdenv = - if stdenv.hostPlatform.isDarwin - then overrideSDK stdenv { darwinMinVersion = "11.0"; darwinSdkVersion = "12.3"; } - else stdenv; + inherit srcs python3 stdenv; }); in { @@ -42,8 +38,6 @@ let qtbase = callPackage ./modules/qtbase.nix { withGtk3 = !stdenv.hostPlatform.isMinGW; inherit (srcs.qtbase) src version; - inherit (darwin.apple_sdk_12_3.frameworks) - AGL AVFoundation AppKit Contacts CoreBluetooth EventKit GSS MetalKit; patches = [ ./patches/0001-qtbase-qmake-always-use-libname-instead-of-absolute-.patch ./patches/0002-qtbase-qmake-fix-mkspecs-for-darwin.patch @@ -55,14 +49,6 @@ let ./patches/0008-qtbase-find-qmlimportscanner-in-macdeployqt-via-envi.patch ./patches/0009-qtbase-check-in-the-QML-folder-of-this-library-does-.patch ./patches/0010-qtbase-derive-plugin-load-path-from-PATH.patch - # Revert "macOS: Silence warning about supporting secure state restoration" - # fix build with macOS sdk < 12.0 - (fetchpatch2 { - url = "https://github.com/qt/qtbase/commit/fc1549c01445bb9c99d3ba6de8fa9da230614e72.patch"; - revert = true; - hash = "sha256-cjB2sC4cvZn0UEc+sm6ZpjyC78ssqB1Kb5nlZQ15M4A="; - }) - # Backport patch for https://bugs.kde.org/show_bug.cgi?id=493116 # FIXME: remove for 6.8.1 (fetchpatch2 { @@ -119,9 +105,7 @@ let qt3d = callPackage ./modules/qt3d.nix { }; qt5compat = callPackage ./modules/qt5compat.nix { }; qtcharts = callPackage ./modules/qtcharts.nix { }; - qtconnectivity = callPackage ./modules/qtconnectivity.nix { - inherit (darwin.apple_sdk_12_3.frameworks) IOBluetooth PCSC; - }; + qtconnectivity = callPackage ./modules/qtconnectivity.nix { }; qtdatavis3d = callPackage ./modules/qtdatavis3d.nix { }; qtdeclarative = callPackage ./modules/qtdeclarative.nix { }; qtdoc = callPackage ./modules/qtdoc.nix { }; @@ -134,7 +118,6 @@ let qtlottie = callPackage ./modules/qtlottie.nix { }; qtmultimedia = callPackage ./modules/qtmultimedia.nix { inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi; - inherit (darwin.apple_sdk_12_3.frameworks) VideoToolbox; }; qtmqtt = callPackage ./modules/qtmqtt.nix { }; qtnetworkauth = callPackage ./modules/qtnetworkauth.nix { }; @@ -143,9 +126,7 @@ let qtserialbus = callPackage ./modules/qtserialbus.nix { }; qtserialport = callPackage ./modules/qtserialport.nix { }; qtshadertools = callPackage ./modules/qtshadertools.nix { }; - qtspeech = callPackage ./modules/qtspeech.nix { - inherit (darwin.apple_sdk_12_3.frameworks) Cocoa; - }; + qtspeech = callPackage ./modules/qtspeech.nix { }; qtquick3d = callPackage ./modules/qtquick3d.nix { }; qtquick3dphysics = callPackage ./modules/qtquick3dphysics.nix { }; qtquickeffectmaker = callPackage ./modules/qtquickeffectmaker.nix { }; @@ -159,30 +140,10 @@ let qtwayland = callPackage ./modules/qtwayland.nix { }; qtwebchannel = callPackage ./modules/qtwebchannel.nix { }; qtwebengine = callPackage ./modules/qtwebengine.nix { - inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds xnu; - inherit (darwin.apple_sdk_12_3) libpm libunwind; - inherit (darwin.apple_sdk_12_3.libs) sandbox; - inherit (darwin.apple_sdk_12_3.frameworks) - AGL AVFoundation Accelerate Cocoa CoreLocation CoreML ForceFeedback - GameController ImageCaptureCore LocalAuthentication - MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz - ReplayKit SecurityInterface Vision; - qtModule = callPackage - ({ qtModule }: qtModule.override { - stdenv = - if stdenv.hostPlatform.isDarwin - then overrideSDK stdenv { darwinMinVersion = "11.0"; darwinSdkVersion = "11.0"; } - else stdenv; - }) - { }; - xcbuild = buildPackages.xcbuild.override { - productBuildVer = "20A2408"; - }; + inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds; }; qtwebsockets = callPackage ./modules/qtwebsockets.nix { }; - qtwebview = callPackage ./modules/qtwebview.nix { - inherit (darwin.apple_sdk_12_3.frameworks) WebKit; - }; + qtwebview = callPackage ./modules/qtwebview.nix { }; wrapQtAppsHook = callPackage ({ makeBinaryWrapper }: makeSetupHook diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix index f9c36c4311e9..c6ba346565b3 100644 --- a/pkgs/development/libraries/qt-6/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix @@ -67,15 +67,10 @@ , unixODBCDrivers # darwin , moveBuildTree +, apple-sdk_11 +, apple-sdk_14 +, darwinMinVersionHook , xcbuild -, AGL -, AVFoundation -, AppKit -, Contacts -, CoreBluetooth -, EventKit -, GSS -, MetalKit # mingw , pkgsBuildBuild # optional dependencies @@ -162,14 +157,8 @@ stdenv.mkDerivation rec { xorg.xcbutilcursor libepoxy ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - AGL - AVFoundation - AppKit - Contacts - CoreBluetooth - EventKit - GSS - MetalKit + apple-sdk_14 + (darwinMinVersionHook "11.0") ] ++ lib.optionals libGLSupported [ libGL ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ @@ -181,9 +170,9 @@ stdenv.mkDerivation rec { at-spi2-core ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libinput) [ libinput - ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [ - AppKit - CoreBluetooth + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + apple-sdk_11 + (darwinMinVersionHook "11.0") ] ++ lib.optional withGtk3 gtk3 ++ lib.optional (libmysqlclient != null && !stdenv.hostPlatform.isMinGW) libmysqlclient diff --git a/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix b/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix index 126920dd5051..8a48c8490435 100644 --- a/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix @@ -5,8 +5,6 @@ , qtdeclarative , bluez , pkg-config -, IOBluetooth -, PCSC }: qtModule { @@ -16,8 +14,5 @@ qtModule { propagatedBuildInputs = [ qtbase qtdeclarative - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - IOBluetooth - PCSC ]; } diff --git a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix index 8cdabc32b657..ae02112475f0 100644 --- a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix @@ -21,7 +21,6 @@ , elfutils , libunwind , orc -, VideoToolbox , pkgsBuildBuild }: @@ -34,13 +33,10 @@ qtModule { ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ]; propagatedBuildInputs = [ qtbase qtdeclarative qtsvg qtshadertools ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ qtquick3d ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ VideoToolbox ]; + ++ lib.optionals stdenv.hostPlatform.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]; patches = [ ../patches/fix-qtgui-include-incorrect-case.patch - # Remove new constants since macOS 12+, since we build Qt with the macOS 11 SDK - ../patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ ../patches/qtmultimedia-windows-no-uppercase-libs.patch ../patches/qtmultimedia-windows-resolve-function-name.patch diff --git a/pkgs/development/libraries/qt-6/modules/qtspeech.nix b/pkgs/development/libraries/qt-6/modules/qtspeech.nix index 3fbfa6e5d90d..828f34bb72b9 100644 --- a/pkgs/development/libraries/qt-6/modules/qtspeech.nix +++ b/pkgs/development/libraries/qt-6/modules/qtspeech.nix @@ -7,13 +7,11 @@ , flite , alsa-lib , speechd-minimal -, Cocoa }: qtModule { pname = "qtspeech"; nativeBuildInputs = [ pkg-config ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ flite alsa-lib speechd-minimal ]; - propagatedBuildInputs = [ qtbase qtmultimedia ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa ]; + propagatedBuildInputs = [ qtbase qtmultimedia ]; } diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix index 11a70e53bfcd..c137bd5a1f68 100644 --- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix @@ -21,6 +21,7 @@ , libXtst , libxshmfence , libXi +, cups , fontconfig , freetype , harfbuzz @@ -64,31 +65,6 @@ , bootstrap_cmds , cctools , xcbuild -, AGL -, AVFoundation -, Accelerate -, Cocoa -, CoreLocation -, CoreML -, ForceFeedback -, GameController -, ImageCaptureCore -, LocalAuthentication -, MediaAccessibility -, MediaPlayer -, MetalKit -, Network -, OpenDirectory -, Quartz -, ReplayKit -, SecurityInterface -, Vision -, openbsm -, libunwind -, cups -, libpm -, sandbox -, xnu }: qtModule { @@ -167,8 +143,6 @@ qtModule { --replace "AppleClang" "Clang" substituteInPlace cmake/Functions.cmake \ --replace "/usr/bin/xcrun" "${xcbuild}/bin/xcrun" - substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ - --replace "\$sysroot/usr" "${xnu}" ''; cmakeFlags = [ @@ -197,7 +171,7 @@ qtModule { ] ++ lib.optionals enableProprietaryCodecs [ "-DQT_FEATURE_webengine_proprietary_codecs=ON" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - "-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinSdkVersion}" + "-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0" # Per Qt 6’s deployment target (why doesn’t the hook work?) ]; propagatedBuildInputs = [ @@ -272,36 +246,10 @@ qtModule { libkrb5 mesa - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - AGL - AVFoundation - Accelerate - Cocoa - CoreLocation - CoreML - ForceFeedback - GameController - ImageCaptureCore - LocalAuthentication - MediaAccessibility - MediaPlayer - MetalKit - Network - OpenDirectory - Quartz - ReplayKit - SecurityInterface - Vision - - openbsm - libunwind ]; buildInputs = [ cups - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - libpm - sandbox ]; requiredSystemFeatures = [ "big-parallel" ]; @@ -316,7 +264,5 @@ qtModule { # This build takes a long time; particularly on slow architectures # 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz timeout = 24 * 3600; - # Not compatible with macOS 11 without massive patching - broken = stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "12"; }; } diff --git a/pkgs/development/libraries/qt-6/modules/qtwebview.nix b/pkgs/development/libraries/qt-6/modules/qtwebview.nix index dfc2da1df555..149ccc2a7ea1 100644 --- a/pkgs/development/libraries/qt-6/modules/qtwebview.nix +++ b/pkgs/development/libraries/qt-6/modules/qtwebview.nix @@ -3,12 +3,10 @@ , qtModule , qtdeclarative , qtwebengine -, WebKit }: qtModule { pname = "qtwebview"; propagatedBuildInputs = [ qtdeclarative ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwebengine ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ WebKit ]; + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwebengine ]; } diff --git a/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch b/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch deleted file mode 100644 index 3196a6e4158c..000000000000 --- a/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/src/multimedia/darwin/qdarwinmediadevices.mm b/src/multimedia/darwin/qdarwinmediadevices.mm -index b0a108935..881066928 100644 ---- a/src/multimedia/darwin/qdarwinmediadevices.mm -+++ b/src/multimedia/darwin/qdarwinmediadevices.mm -@@ -42,7 +42,7 @@ static AudioDeviceID defaultAudioDevice(QAudioDevice::Mode mode) - const AudioObjectPropertyAddress propertyAddress = { - selector, - kAudioObjectPropertyScopeGlobal, -- kAudioObjectPropertyElementMain, -+ kAudioObjectPropertyElementMaster, - }; - - if (auto audioDevice = getAudioObject(kAudioObjectSystemObject, propertyAddress, -@@ -77,7 +77,7 @@ static QList availableAudioDevices(QAudioDevice::Mode mode) - - const AudioObjectPropertyAddress audioDevicesPropertyAddress = { - kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, -- kAudioObjectPropertyElementMain -+ kAudioObjectPropertyElementMaster - }; - - if (auto audioDevices = getAudioData( -@@ -130,11 +130,11 @@ static OSStatus audioDeviceChangeListener(AudioObjectID id, UInt32, - - static constexpr AudioObjectPropertyAddress listenerAddresses[] = { - { kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal, -- kAudioObjectPropertyElementMain }, -+ kAudioObjectPropertyElementMaster }, - { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, -- kAudioObjectPropertyElementMain }, -+ kAudioObjectPropertyElementMaster }, - { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, -- kAudioObjectPropertyElementMain } -+ kAudioObjectPropertyElementMaster } - }; - - static void setAudioListeners(QDarwinMediaDevices &instance) -diff --git a/src/multimedia/darwin/qmacosaudiodatautils_p.h b/src/multimedia/darwin/qmacosaudiodatautils_p.h -index 8cc2f8440..5cd6fced2 100644 ---- a/src/multimedia/darwin/qmacosaudiodatautils_p.h -+++ b/src/multimedia/darwin/qmacosaudiodatautils_p.h -@@ -44,7 +44,7 @@ void printUnableToReadWarning(const char *logName, AudioObjectID objectID, const - - inline static AudioObjectPropertyAddress - makePropertyAddress(AudioObjectPropertySelector selector, QAudioDevice::Mode mode, -- AudioObjectPropertyElement element = kAudioObjectPropertyElementMain) -+ AudioObjectPropertyElement element = kAudioObjectPropertyElementMaster) - { - return { selector, - mode == QAudioDevice::Input ? kAudioDevicePropertyScopeInput diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix index ef5aa994ce90..bb2243318a10 100644 --- a/pkgs/development/libraries/qt-6/qtModule.nix +++ b/pkgs/development/libraries/qt-6/qtModule.nix @@ -1,5 +1,6 @@ { lib , stdenv +, apple-sdk_14 , cmake , ninja , perl @@ -19,7 +20,10 @@ stdenv.mkDerivation (args // { inherit pname version src; patches = args.patches or patches.${pname} or [ ]; - buildInputs = args.buildInputs or [ ]; + buildInputs = + args.buildInputs or [ ] + # Per https://doc.qt.io/qt-6/macos.html#supported-versions + ++ lib.optionals stdenv.isDarwin [ apple-sdk_14 ]; nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ cmake ninja perl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ]; propagatedBuildInputs =