Unverified Commit dad8d3a0 authored by Philip Taron's avatar Philip Taron
Browse files

nixVersions.nix_2_32: 2.32.4 -> 2.32.5

# Changelog: Nix 2.32.5

## Bug Fixes

### Critical Crashes Fixed

- **Fix heap-use-after-free crash under high build load** ([#14772](https://github.com/NixOS/nix/pull/14772))

  Fixed a daemon segfault that could occur under high build load. The issue was caused by the `initialOutputs` field referencing data from an activation frame that had gone out of scope during coroutine tail-call optimization in the build scheduler.

- **Fix segfault when querying non-existent derivation files** ([#14571](https://github.com/NixOS/nix/issues/14571), [#14572](https://github.com/NixOS/nix/pull/14572))

  Running `nix derivation show /nix/store/...-doesnotexist.drv` would crash with a segfault. Now properly returns an "invalid store path" error.

- **Fix RestrictedStore::addDependency crash** ([#14729](https://github.com/NixOS/nix/pull/14729))

  Fixed a crash caused by incorrect non-virtual interface pattern implementation that led to bad recursion/UB in `addDependencyPrep`.

### Regressions Fixed

- **Fix "dynamic attributes not allowed in let" regression** ([#14642](https://github.com/NixOS/nix/issues/14642), [#14646](https://github.com/NixOS/nix/pull/14646))

  Expressions like `let a = 1; "b" = 2; ${"c"} = 3; in [ a b c ]` that worked in 2.30 would incorrectly fail in 2.32.x. This was caused by the ExprString arena optimization, which has been reverted.

- **Fix fetchGit with `ref = "HEAD"` regression** ([#13948](https://github.com/NixOS/nix/issues/13948), [#14672](https://github.com/NixOS/nix/pull/14672))

  `fetchGit { url = "..."; ref = "HEAD"; }` was broken and returned "revspec 'HEAD' not found".

- **Fix unnecessary substituter queries** ([#14836](https://github.com/NixOS/nix/issues/14836), [#14837](https://github.com/NixOS/nix/pull/14837))

  Fixed a regression where Nix would query all substituters (including `cache.nixos.org`) even when a higher-priority local substituter already had the path. This caused unnecessary network traffic.

### Platform-Specific Fixes

- **Fix curl with c-ares failing DNS resolution in macOS sandbox** ([#14792](https://github.com/NixOS/nix/pull/14792))

  When curl is built with c-ares (as in recent nixpkgs), DNS resolution would fail inside the Nix build sandbox on macOS with "Could not contact DNS servers".

### Store & File System Fixes

- **Fix file system race conditions in store optimization** ([#14676](https://github.com/NixOS/nix/pull/14676), [#7273](https://github.com/NixOS/nix/issues/7273))

  Multiple fixes to `optimizePath_`:
  - Actually call `remove()` when `rename()` fails
  - Propagate error codes in `createSymlink()`
  - Make `AutoDelete` non-copyable and non-movable to prevent use-after-free

## Improvements

- **Include path in world-writable error messages** ([#14785](https://github.com/NixOS/nix/pull/14785))

  The error message for world-writable directory checks now includes the specific path that failed, making debugging easier.

- **Documentation: correct `build-dir` error information** ([#14745](https://github.com/NixOS/nix/pull/14745))

  Fixed out-of-date information in the manual about `build-dir` errors and added links to relevant settings.

## Maintenance

- CI improvements: added `upload-release.yml` workflow, improved Docker push workflow configurability, updated magic-nix-cache with post-build-hook fix
- Documented maintainer git tag signing process
- Fixed lowdown override compatibility with newer nixpkgs
- Removed mdbook-linkcheck and added support for mdbook 0.5.x
- Remove static data from headers to fix compilation issues
- **Fix heap-use-after-free crash under high build load** ([#14772](https://github.com/NixOS/nix/pull/14772))

---

Diff: https://github.com/NixOS/nix/compare/2.32.4...2.32.5
parent d8851364
Loading
Loading
Loading
Loading
+11 −19
Original line number Diff line number Diff line
@@ -198,25 +198,17 @@ lib.makeExtensible (

      nix_2_31 = addTests "nix_2_31" self.nixComponents_2_31.nix-everything;

      nixComponents_2_32 =
        (nixDependencies.callPackage ./modular/packages.nix rec {
          version = "2.32.4";
      nixComponents_2_32 = nixDependencies.callPackage ./modular/packages.nix rec {
        version = "2.32.5";
        inherit (self.nix_2_31.meta) maintainers teams;
        otherSplices = generateSplicesForNixComponents "nixComponents_2_32";
        src = fetchFromGitHub {
          owner = "NixOS";
          repo = "nix";
          tag = version;
            hash = "sha256-8QYnRyGOTm3h/Dp8I6HCmQzlO7C009Odqyp28pTWgcY=";
          hash = "sha256-vnlVgJ5VXn2LVvdzf1HUZeGq0pqa6vII11C8u5Q/YgM=";
        };
      };
        }).appendPatches
          [
            (fetchpatch2 {
              name = "nix-2.32-14693-mdbook-0.5-support.patch";
              url = "https://github.com/NixOS/nix/commit/ba5bede9f51f126b29aaa01a3170da281cef0231.patch";
              hash = "sha256-jY5fWnJSBfHRmB0RnBKeu3aYQ8wmDKYVqTj85cWVZRA=";
            })
          ];

      nix_2_32 = addTests "nix_2_32" self.nixComponents_2_32.nix-everything;