···53535454- `fetchtorrent`, when using the "rqbit" backend, erroneously started fetching files into a subdirectory in Nixpkgs 24.11. The original behaviour – which matches the behaviour using the "transmission" backend – has now been restored. Users reliant on the erroneous behaviour can temporarily maintain it by adding `flatten = false` to the `fetchtorrent` arguments; Nix will produce an evaluation warning for anyone using `backend = "rqbit"` without `flatten = true`.
55555656+- `linux` and all other Linux kernel packages have moved all in-tree kernel modules into a new `modules` output.
5757+5658- `webfontkitgenerator` has been renamed to `webfont-bundler`, following the rename of the upstream project.
5759 The binary name remains `webfontkitgenerator`.
5860 The `webfontkitgenerator` package is an alias to `webfont-bundler`.
+6-7
doc/stdenv/platform-notes.chapter.md
···236236237237You may see references to `darwin.apple_sdk.frameworks`.
238238This is the legacy SDK pattern, and it is being phased out.
239239-All packages in `darwin.apple_sdk`, `darwin.apple_sdk_11_0`, and `darwin.apple_sdk_12_3` are stubs that do nothing.
240240-If your derivation references them, you can delete them. The default SDK should be enough to build your package.
239239+All packages in `darwin.apple_sdk`, `darwin.apple_sdk_11_0`, and `darwin.apple_sdk_12_3` have been removed.
240240+If your derivation references them, you should delete those references, as the default SDK should be enough to build your package.
241241242242Note: the new SDK pattern uses the name `apple-sdk` to better align with Nixpkgs naming conventions.
243243The legacy SDK pattern uses `apple_sdk`.
···254254#### Updating legacy SDK overrides {#sec-darwin-legacy-frameworks-overrides}
255255256256The legacy SDK provided two ways of overriding the default SDK.
257257-These are both being phased out along with the legacy SDKs.
258258-They have been updated to set up the new SDK for you, but you should replace them with doing that directly.
257257+They have been removed along with the legacy SDKs.
259258260259- `pkgs.darwin.apple_sdk_11_0.callPackage` - this pattern was used to provide frameworks from the macOS 11 SDK.
261260 It is now the same as `callPackage`.
262261- `overrideSDK` - this stdenv adapter would try to replace the frameworks used by your derivation and its transitive dependencies.
263263- It now adds the `apple-sdk_12` package for `12.3` and does nothing for `11.0`.
264264- If `darwinMinVersion` is specified, it will add `darwinMinVersionHook` with the specified minimum version.
265265- No other SDK versions are supported.
262262+ It added the `apple-sdk_12` package for `12.3` and did nothing for `11.0`.
263263+ If `darwinMinVersion` is specified, it would add `darwinMinVersionHook` with the specified minimum version.
264264+ No other SDK versions were supported.
266265267266### Darwin Cross-Compilation {#sec-darwin-legacy-cross-compilation}
268267
+1-1
nixos/modules/system/boot/kernel.nix
···387387 (mkIf config.boot.kernel.enable {
388388 system.build = { inherit kernel; };
389389390390- system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages;
390390+ system.modulesTree = [ (lib.getOutput "modules" kernel) ] ++ config.boot.extraModulePackages;
391391392392 # Not required for, e.g., containers as they don't have their own kernel or initrd.
393393 # They boot directly into stage 2.
···11-{ lib, stdenvNoCC }:
22-33-prefix: version: pname:
44-lib.warnOnInstantiate
55- "${prefix}.${pname}: these stubs do nothing and will be removed in Nixpkgs 25.11; see <https://nixos.org/manual/nixpkgs/stable/#sec-darwin> for documentation and migration instructions."
66- (
77- stdenvNoCC.mkDerivation {
88- inherit pname version;
99-1010- buildCommand = ''
1111- mkdir -p "$out"
1212- echo "Individual frameworks have been deprecated. See the stdenv documentation for how to use `apple-sdk`" \
1313- > "$out/README"
1414- '';
1515-1616- passthru.isDarwinCompatStub = true;
1717- }
1818- )
+28-13
pkgs/os-specific/linux/kernel/manual-config.nix
···178178 outputs = [
179179 "out"
180180 "dev"
181181+ "modules"
181182 ];
182183 })
183184 // {
185185+ __structuredAttrs = true;
186186+184187 passthru = rec {
185188 inherit
186189 version
···306309307310 # reads the existing .config file and prompts the user for options in
308311 # the current kernel source that are not found in the file.
309309- make $makeFlags "''${makeFlagsArray[@]}" oldconfig
312312+ make "''${makeFlags[@]}" oldconfig
310313 runHook postConfigure
311314312312- make $makeFlags "''${makeFlagsArray[@]}" prepare
315315+ make "''${makeFlags[@]}" prepare
313316 actualModDirVersion="$(cat $buildRoot/include/config/kernel.release)"
314317 if [ "$actualModDirVersion" != "${modDirVersion}" ]; then
315318 echo "Error: modDirVersion ${modDirVersion} specified in the Nix expression is wrong, it should be: $actualModDirVersion"
316319 exit 1
317320 fi
318321319319- buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)")
322322+ buildFlags+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)")
320323321324 cd $buildRoot
322325 '';
···334337 ++ extraMakeFlags;
335338336339 installFlags = [
337337- "INSTALL_PATH=$(out)"
340340+ "INSTALL_PATH=${placeholder "out"}"
338341 ]
339339- ++ (optional isModular "INSTALL_MOD_PATH=$(out)")
342342+ ++ (optional isModular "INSTALL_MOD_PATH=${placeholder "modules"}")
340343 ++ optionals buildDTBs [
341344 "dtbs_install"
342342- "INSTALL_DTBS_PATH=$(out)/dtbs"
345345+ "INSTALL_DTBS_PATH=${placeholder "out"}/dtbs"
343346 ];
344347345348 preInstall =
···396399 '';
397400 in
398401 ''
399399- installFlagsArray+=("-j$NIX_BUILD_CORES")
402402+ installFlags+=("-j$NIX_BUILD_CORES")
400403 export HOME=${installkernel}
401404 '';
402405···433436 mkdir -p $dev
434437 cp vmlinux $dev/
435438 if [ -z "''${dontStrip-}" ]; then
436436- installFlagsArray+=("INSTALL_MOD_STRIP=1")
439439+ installFlags+=("INSTALL_MOD_STRIP=1")
437440 fi
438438- make modules_install $makeFlags "''${makeFlagsArray[@]}" \
439439- $installFlags "''${installFlagsArray[@]}"
440440- unlink $out/lib/modules/${modDirVersion}/build
441441- rm -f $out/lib/modules/${modDirVersion}/source
441441+ make modules_install "''${makeFlags[@]}" "''${installFlags[@]}"
442442+ unlink $modules/lib/modules/${modDirVersion}/build
442443443444 mkdir -p $dev/lib/modules/${modDirVersion}/{build,source}
444445···450451 cd $dev/lib/modules/${modDirVersion}/source
451452452453 cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build
453453- make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build
454454+ make modules_prepare "''${makeFlags[@]}" O=$dev/lib/modules/${modDirVersion}/build
454455455456 # For reproducibility, removes accidental leftovers from a `cc1` call
456457 # from a `try-run` call from the Makefile
···560561561562 makeFlags = [
562563 "O=$(buildRoot)"
564564+565565+ # We have a `modules` variable in the environment for our
566566+ # split output, but the kernel Makefiles also define their
567567+ # own `modules` variable. Their definition wins, but Make
568568+ # remembers that the variable was originally from the
569569+ # environment and exports it to all the build recipes. This
570570+ # breaks the build with an “Argument list too long” error due
571571+ # to passing the huge list of every module object file in the
572572+ # environment of every process invoked by every build recipe.
573573+ #
574574+ # We use `--eval` here to undefine the inherited environment
575575+ # variable before any Makefiles are read, ensuring that the
576576+ # kernel’s definition creates a new, unexported variable.
577577+ "--eval=undefine modules"
563578 ]
564579 ++ commonMakeFlags;
565580
···424424 });
425425 });
426426427427- # `overrideSDK` is deprecated. Add the versioned variants of `apple-sdk` to `buildInputs` change the SDK.
428428- overrideSDK = pkgs.callPackage ./darwin/override-sdk.nix { inherit lib extendMkDerivationArgs; };
429429-430427 withDefaultHardeningFlags =
431428 defaultHardeningFlags: stdenv:
432429 let
-34
pkgs/stdenv/darwin/override-sdk.nix
···11-# This is a compatibility shim with `overrideSDK`.
22-# Note: `overrideSDK` is deprecated. It will be removed in 25.11.
33-{
44- lib,
55- stdenvNoCC,
66- extendMkDerivationArgs,
77- pkgsHostTarget,
88-}:
99-1010-stdenv: sdkVersion:
1111-let
1212- darwinSdkVersion =
1313- if lib.isAttrs sdkVersion then sdkVersion.darwinSdkVersion or "11.0" else sdkVersion;
1414-in
1515-assert lib.assertMsg (darwinSdkVersion == "11.0" || darwinSdkVersion == "12.3") ''
1616- `overrideSDK` and `darwin.apple_sdk_11_0.callPackage` are deprecated.
1717- Only the 11.0 and 12.3 SDKs are supported using them. Please use
1818- the versioned `apple-sdk` variants to use other SDK versions.
1919-2020- See the stdenv documentation for how to use `apple-sdk`.
2121-'';
2222-assert lib.warn
2323- "overrideSDK: this mechanism is deprecated and will be removed in 25.11, use `apple-sdk_*` or `darwinMinVersionHook` in build inputs instead; see <https://nixos.org/manual/nixpkgs/stable/#sec-darwin> for documentation"
2424- true;
2525-stdenv.override (old: {
2626- mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
2727- buildInputs =
2828- args.buildInputs or [ ]
2929- ++ lib.optional (darwinSdkVersion == "12.3") pkgsHostTarget.apple-sdk_12
3030- ++ lib.optional (sdkVersion ? darwinMinVersion) (
3131- pkgsHostTarget.darwinMinVersionHook sdkVersion.darwinMinVersion
3232- );
3333- });
3434-})
+1
pkgs/top-level/aliases.nix
···15431543 oraclejdk11 = throw "All Oracle JDKs and JREs were dropped due to being unmaintained and heavily insecure. OpenJDK provides compatible replacements for JDKs and JREs."; # Added 2024-11-01
15441544 OSCAR = oscar; # Added 2024-06-12
15451545 osxfuse = throw "'osxfuse' has been renamed to/replaced by 'macfuse-stubs'"; # Converted to throw 2024-10-17
15461546+ overrideSDK = "overrideSDK has been removed as it was a legacy compatibility stub; see <https://nixos.org/manual/nixpkgs/stable/#sec-darwin-legacy-frameworks-overrides> for migration instructions"; # Added 2025-08-04
15461547 ovn-lts = throw "ovn-lts has been removed. Please use the latest version available under ovn"; # Added 2024-08-24
15471548 oxygen-icons5 = throw ''
15481549 The top-level oxygen-icons5 alias has been removed.
+10-19
pkgs/top-level/darwin-aliases.nix
···4545 n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias))
4646 );
47474848- # Old Darwin pattern stubs; remove these by 25.11.
4848+ # Old Darwin pattern stubs; converted to throws in 25.11.
49495050- mkStub = pkgs.callPackage ../os-specific/darwin/apple-sdk/mk-stub.nix { };
5050+ mkThrow =
5151+ name:
5252+ throw "darwin.${name} has been removed as it was a legacy compatibility stub; see <https://nixos.org/manual/nixpkgs/stable/#sec-darwin-legacy-frameworks> for migration instructions";
51535252- apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { };
5454+ apple_sdk_11_0 = mkThrow "apple_sdk_11_0";
53555454- apple_sdk_12_3 = pkgs.callPackage ../os-specific/darwin/apple-sdk-12.3 { };
5656+ apple_sdk_12_3 = mkThrow "apple_sdk_12_3";
55575658 apple_sdk = apple_sdk_11_0;
5759···9294 "objc4"
9395 "ppp"
9496 "xnu"
9595- ] (mkStub "darwin" "11.0");
9797+ ] mkThrow;
9698in
979998100stubs
···126128 ### L ###
127129128130 libauto = throw "'darwin.libauto' has been removed, as it was broken and unmaintained"; # added 2024-05-10
129129- libresolvHeaders = lib.warnOnInstantiate "darwin.libresolvHeaders: use `lib.getInclude darwin.libresolv`; this will be removed in 25.11" (
130130- lib.getDev self.libresolv
131131- ); # added 2025-04-20
131131+ libresolvHeaders = throw "darwin.libresolvHeaders has been removed; use `lib.getInclude darwin.libresolv`"; # converted to throw 2025-07-29
132132 libtapi = pkgs.libtapi; # 2024-08-16
133133- libutilHeaders = lib.warnOnInstantiate "darwin.libutilHeaders: use `lib.getInclude darwin.libutil`; this will be removed in 25.11" (
134134- lib.getDev self.libutil
135135- ); # added 2025-04-20
133133+ libutilHeaders = throw "darwin.libutilHeaders has been removed; use `lib.getInclude darwin.libutil`"; # converted to throw 2025-07-29
136134137135 ### M ###
138136···152150153151 ### S ###
154152155155- stdenvNoCF =
156156- lib.warnOnInstantiate
157157- "darwin.stdenvNoCF: use `stdenv` or `stdenvNoCC`; this will be removed in 25.11"
158158- (
159159- pkgs.stdenv.override {
160160- extraBuildInputs = [ ];
161161- }
162162- ); # added 2025-04-20
153153+ stdenvNoCF = throw "darwin.stdenvNoCF has been removed; use `stdenv` or `stdenvNoCC`"; # converted to throw 2025-07-29
163154 stubs = throw "'darwin.stubs.*' have been removed as they were unused"; # added 2025-04-20
164155 swift-corelibs-foundation = throw "'darwin.swift-corelibs-foundation' has been removed, as it was broken and is no longer used"; # added 2025-04-20
165156})