From 259dc71e686941be3f2d3b8d651bd5915830efb1 Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 20 Apr 2025 14:12:13 +0100 Subject: [PATCH 1/4] gmt: adjust for new Darwin SDK pattern --- pkgs/by-name/gm/gmt/package.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gm/gmt/package.nix b/pkgs/by-name/gm/gmt/package.nix index 7809059198161..4f688d9b8041e 100644 --- a/pkgs/by-name/gm/gmt/package.nix +++ b/pkgs/by-name/gm/gmt/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, cmake, curl, - darwin, + apple-sdk, fftwSinglePrec, netcdf, pcre, @@ -34,8 +34,7 @@ stdenv.mkDerivation (finalAttrs: { NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-implicit-function-declaration " + lib.optionalString ( - stdenv.hostPlatform.isDarwin - && lib.versionOlder (darwin.apple_sdk.MacOSX-SDK.version or darwin.apple_sdk.sdk.version) "13.3" + stdenv.hostPlatform.isDarwin && lib.versionOlder apple-sdk.version "13.3" ) "-D__LAPACK_int=int"; }; From 28bd9e7394072b838850f1a1076eeea229451b37 Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 20 Apr 2025 18:15:55 +0100 Subject: [PATCH 2/4] =?UTF-8?q?valgrind:=20remove=20Darwin=E2=80=90related?= =?UTF-8?q?=20dead=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This has been broken on Darwin since 2020 and depends on deprecated stubs. Best to remove it until someone figures out how to get it working again than spend effort tidying up dead code. --- .../tools/analysis/valgrind/default.nix | 61 +++++-------------- pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 15 insertions(+), 50 deletions(-) diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix index 3f2d2d38e7570..c180de124d6bd 100644 --- a/pkgs/development/tools/analysis/valgrind/default.nix +++ b/pkgs/development/tools/analysis/valgrind/default.nix @@ -6,9 +6,6 @@ autoreconfHook, perl, gdb, - cctools, - xnu, - bootstrap_cmds, writeScript, }: @@ -56,15 +53,10 @@ stdenv.mkDerivation rec { # GDB is needed to provide a sane default for `--db-command'. # Perl is needed for `callgrind_{annotate,control}'. - buildInputs = - [ - gdb - perl - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ - bootstrap_cmds - xnu - ]; + buildInputs = [ + gdb + perl + ]; # Perl is also a native build input. nativeBuildInputs = [ @@ -75,40 +67,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; separateDebugInfo = stdenv.hostPlatform.isLinux; - preConfigure = - lib.optionalString stdenv.hostPlatform.isFreeBSD '' - substituteInPlace configure --replace-fail '`uname -r`' ${stdenv.cc.libc.version}- - '' - + lib.optionalString stdenv.hostPlatform.isDarwin ( - let - OSRELEASE = '' - $(awk -F '"' '/#define OSRELEASE/{ print $2 }' \ - <${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)''; - in - '' - echo "Don't derive our xnu version using uname -r." - substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}" - - # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666). - echo "getting rid of the \`-arch' GCC option..." - find -name Makefile\* -exec \ - sed -i {} -e's/DARWIN\(.*\)-arch [^ ]\+/DARWIN\1/g' \; - - sed -i coregrind/link_tool_exe_darwin.in \ - -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g' - - substituteInPlace coregrind/m_debuginfo/readmacho.c \ - --replace /usr/bin/dsymutil ${stdenv.cc.bintools.bintools}/bin/dsymutil - - echo "substitute hardcoded /usr/bin/ld with ${cctools}/bin/ld" - substituteInPlace coregrind/link_tool_exe_darwin.in \ - --replace /usr/bin/ld ${cctools}/bin/ld - '' - ); - - configureFlags = - lib.optional stdenv.hostPlatform.isx86_64 "--enable-only64bit" - ++ lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include"; + preConfigure = lib.optionalString stdenv.hostPlatform.isFreeBSD '' + substituteInPlace configure --replace-fail '`uname -r`' ${stdenv.cc.libc.version}- + ''; + + configureFlags = lib.optional stdenv.hostPlatform.isx86_64 "--enable-only64bit"; doCheck = true; @@ -157,6 +120,10 @@ stdenv.mkDerivation rec { darwin ++ freebsd ++ illumos ++ linux ); badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; - broken = stdenv.hostPlatform.isDarwin; # https://hydra.nixos.org/build/128521440/nixlog/2 + # See: + # + # Darwin‐specific derivation logic has been removed, check the + # history if you want to fix this. + broken = stdenv.hostPlatform.isDarwin; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 50eca52b28f57..94046eda17ad3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8175,9 +8175,7 @@ with pkgs; jdk = jdk11; }; - valgrind = callPackage ../development/tools/analysis/valgrind { - inherit (buildPackages.darwin) xnu bootstrap_cmds; - }; + valgrind = callPackage ../development/tools/analysis/valgrind { }; valgrind-light = (res.valgrind.override { gdb = null; }).overrideAttrs (oldAttrs: { meta = oldAttrs.meta // { description = "${oldAttrs.meta.description} (without GDB)"; From 6c5166e4579a33441cff92d8c6db85663cb153c4 Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 20 Apr 2025 18:34:04 +0100 Subject: [PATCH 3/4] haskellPackages.bindings-GLFW: drop reference to `darwin.CF` stub --- pkgs/development/haskell-modules/configuration-darwin.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix index 8df220c9beb91..560ce39a869d8 100644 --- a/pkgs/development/haskell-modules/configuration-darwin.nix +++ b/pkgs/development/haskell-modules/configuration-darwin.nix @@ -152,9 +152,6 @@ self: super: }) super.OpenGLRaw; bindings-GLFW = overrideCabal (drv: { librarySystemDepends = [ ]; - libraryHaskellDepends = drv.libraryHaskellDepends ++ [ - darwin.CF - ]; }) super.bindings-GLFW; # cabal2nix likes to generate dependencies on hinotify when hfsevents is From 09d5e1a737522f6a034c7a90997fc5f23b102150 Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 20 Apr 2025 01:53:32 +0100 Subject: [PATCH 4/4] darwin: move deprecated packages to aliases --- .../darwin/apple-sdk-11.0/default.nix | 5 -- .../darwin/apple-sdk-12.3/default.nix | 5 -- pkgs/top-level/darwin-aliases.nix | 77 ++++++++++++++++++- pkgs/top-level/darwin-packages.nix | 62 --------------- 4 files changed, 74 insertions(+), 75 deletions(-) diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix b/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix index 8f283c6bec540..59a764db18e50 100644 --- a/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix @@ -1,13 +1,8 @@ # Compatibility stubs for packages that used the old SDK frameworks. -# TODO(@reckenrode) Make these stubs warn after framework usage has been cleaned up in nixpkgs. { lib, callPackage, - newScope, - overrideSDK, pkgs, - stdenv, - stdenvNoCC, }: let diff --git a/pkgs/os-specific/darwin/apple-sdk-12.3/default.nix b/pkgs/os-specific/darwin/apple-sdk-12.3/default.nix index 468465b192772..65b7c30f65c51 100644 --- a/pkgs/os-specific/darwin/apple-sdk-12.3/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk-12.3/default.nix @@ -1,13 +1,8 @@ # Compatibility stubs for packages that used the old SDK frameworks. -# TODO(@reckenrode) Make these stubs warn after framework usage has been cleaned up in nixpkgs. { lib, callPackage, - newScope, - overrideSDK, pkgs, - stdenv, - stdenvNoCC, }: let diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix index 108ccdd0cdd07..ceec048d845fb 100644 --- a/pkgs/top-level/darwin-aliases.nix +++ b/pkgs/top-level/darwin-aliases.nix @@ -44,9 +44,69 @@ let mapAliases = lib.mapAttrs ( n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias)) ); + + # Old Darwin pattern stubs; remove these by 25.11. + + mkStub = pkgs.callPackage ../os-specific/darwin/apple-sdk/mk-stub.nix { }; + + warnStub = + prefix: + lib.warn "${prefix} these stubs do nothing and will be removed in Nixpkgs 25.11; see for documentation and migration instructions"; + + apple_sdk_11_0 = warnStub "darwin.apple_sdk_11_0.*:" ( + pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { } + ); + + apple_sdk_12_3 = + warnStub + "darwin.apple_sdk_12_3.*: add `apple-sdk_12` to build inputs instead to use the macOS 12 SDK." + (pkgs.callPackage ../os-specific/darwin/apple-sdk-12.3 { }); + + apple_sdk = apple_sdk_11_0; + + stubs = + { + inherit apple_sdk apple_sdk_11_0 apple_sdk_12_3; + } + // lib.genAttrs [ + "CF" + "CarbonHeaders" + "CommonCrypto" + "CoreSymbolication" + "IOKit" + "Libc" + "Libinfo" + "Libm" + "Libnotify" + "Librpcsvc" + "Libsystem" + "LibsystemCross" + "Security" + "architecture" + "cf-private" + "configd" + "configdHeaders" + "darwin-stubs" + "dtrace" + "eap8021x" + "hfs" + "hfsHeaders" + "launchd" + "libclosure" + "libdispatch" + "libmalloc" + "libobjc" + "libplatform" + "libpthread" + "mDNSResponder" + "objc4" + "ppp" + "xnu" + ] (name: warnStub "darwin.${name}:" (mkStub "11.0" name)); in -mapAliases ({ +stubs +// mapAliases ({ ### A ### apple_sdk_10_12 = throw "darwin.apple_sdk_10_12 was removed as Nixpkgs no longer supports macOS 10.12; see the 25.05 release notes"; # Added 2024-10-27 @@ -63,8 +123,6 @@ mapAliases ({ cctools-llvm = pkgs.cctools; # added 2024-07-01 cctools-port = pkgs.cctools; # added 2024-07-17 - cf-private = throw "'cf-private' has been renamed to 'apple_sdk.frameworks.CoreFoundation'."; - ### D ### discrete-scroll = pkgs.discrete-scroll; # added 2024-11-27 @@ -78,7 +136,13 @@ mapAliases ({ ### L ### libauto = throw "'darwin.libauto' has been removed, as it was broken and unmaintained"; # added 2024-05-10 + libresolvHeaders = lib.warn "darwin.libresolvHeaders: use `lib.getInclude darwin.libresolv`; this will be removed in 25.11" ( + lib.getDev self.libresolv + ); # added 2025-04-20 libtapi = pkgs.libtapi; # 2024-08-16 + libutilHeaders = lib.warn "darwin.libutilHeaders: use `lib.getInclude darwin.libutil`; this will be removed in 25.11" ( + lib.getDev self.libutil + ); # added 2025-04-20 ### M ### @@ -98,6 +162,13 @@ mapAliases ({ ### S ### + stdenvNoCF = + lib.warn "darwin.stdenvNoCF: use `stdenv` or `stdenvNoCC`; this will be removed in 25.11" + ( + pkgs.stdenv.override { + extraBuildInputs = [ ]; + } + ); # added 2025-04-20 stubs = throw "'darwin.stubs.*' have been removed as they were unused"; # added 2025-04-20 swift-corelibs-foundation = throw "'darwin.swift-corelibs-foundation' has been removed, as it was broken and is no longer used"; # added 2025-04-20 }) diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 3c5ca65abf61e..bd72e4043381f 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -26,13 +26,10 @@ let pkg ) (old.extraBuildInputs or [ ]); }); - - mkStub = pkgs.callPackage ../os-specific/darwin/apple-sdk/mk-stub.nix { }; in makeScopeWithSplicing' { otherSplices = generateSplicesForMkScope "darwin"; - extra = spliced: spliced.apple_sdk.frameworks; f = lib.extends aliases ( self: let @@ -44,73 +41,14 @@ makeScopeWithSplicing' { directory = ../os-specific/darwin/apple-source-releases; }; - # Compatibility packages that aren’t necessary anymore - apple-source-headers = { - libresolvHeaders = lib.getDev self.libresolv; - libutilHeaders = lib.getDev self.libutil; - }; - # Must use pkgs.callPackage to avoid infinite recursion. impure-cmds = pkgs.callPackage ../os-specific/darwin/impure-cmds { }; - - # macOS 11.0 SDK - apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { }; - - # macOS 12.3 SDK - apple_sdk_12_3 = pkgs.callPackage ../os-specific/darwin/apple-sdk-12.3 { }; - - apple_sdk = apple_sdk_11_0; - - stubs = - { - inherit apple_sdk apple_sdk_11_0 apple_sdk_12_3; - libobjc = self.objc4; - } - // lib.genAttrs [ - "CF" - "CarbonHeaders" - "CommonCrypto" - "CoreSymbolication" - "IOKit" - "Libc" - "Libinfo" - "Libm" - "Libnotify" - "Librpcsvc" - "Libsystem" - "LibsystemCross" - "Security" - "architecture" - "configd" - "configdHeaders" - "darwin-stubs" - "dtrace" - "eap8021x" - "hfs" - "hfsHeaders" - "launchd" - "libclosure" - "libdispatch" - "libmalloc" - "libplatform" - "libpthread" - "mDNSResponder" - "objc4" - "ppp" - "xnu" - ] (mkStub apple_sdk.version); in impure-cmds // apple-source-packages - // apple-source-headers - // stubs // { - stdenvNoCF = stdenv.override { - extraBuildInputs = [ ]; - }; - inherit (self.adv_cmds) ps; binutils-unwrapped = callPackage ../os-specific/darwin/binutils {