Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nix for openSUSE:Factory checked in 
at 2026-10-23 20:29:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nix (Old)
 and      /work/SRC/openSUSE:Factory/.nix.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nix"

Fri Oct 23 20:29:52 2026 rev:24 rq:1392015 version:2.35.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/nix/nix.changes  2026-10-14 18:36:09.356480799 
+0200
+++ /work/SRC/openSUSE:Factory/.nix.new.2252680/nix.changes     2026-10-23 
20:31:28.506570035 +0200
@@ -1,0 +2,15 @@
+Thu Oct 22 21:58:19 UTC 2026 - Marcus Rueckert <[email protected]>
+
+- Update to version 2.35.4:
+  - 958a4d31b packaging: cacert: 3.126 -> 3.131.1
+  - 25e74536b packaging: Fix more fork unsafety in aws-c-io s2n
+    patch
+  - ba27db58c packaging/dependencies: Update
+  - 5eec05caa maintainers: Disable more formatting cases in tests
+  - c9ac68eae flake.lock: Update
+  - 43d8c6c7f [Backport 2.35-maintenance] Fix incorrectly reported
+    bytes freed for local-overlay-store (#16630)
+  - bfdc7f4c6 Fix incorrectly reported bytes freed for
+    local-overlay-store
+
+-------------------------------------------------------------------

Old:
----
  nix-2.35.3.tar.gz

New:
----
  nix-2.35.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nix.spec ++++++
--- /var/tmp/diff_new_pack.IeDYPx/_old  2026-10-23 20:31:29.648617755 +0200
+++ /var/tmp/diff_new_pack.IeDYPx/_new  2026-10-23 20:31:29.650617838 +0200
@@ -26,7 +26,7 @@
 %bcond_with docs
 
 Name:           nix
-Version:        2.35.3
+Version:        2.35.4
 Release:        0
 Summary:        The purely functional package manager
 License:        LGPL-2.1-only

++++++ nix-2.35.3.tar.gz -> nix-2.35.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/.version new/nix-2.35.4/.version
--- old/nix-2.35.3/.version     2026-10-13 13:32:25.000000000 +0200
+++ new/nix-2.35.4/.version     2026-10-22 20:54:38.000000000 +0200
@@ -1 +1 @@
-2.35.3
+2.35.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/docker.nix new/nix-2.35.4/docker.nix
--- old/nix-2.35.3/docker.nix   2026-10-13 13:32:25.000000000 +0200
+++ new/nix-2.35.4/docker.nix   2026-10-22 20:54:38.000000000 +0200
@@ -47,6 +47,33 @@
   # Other dependencies
   shadow ? pkgs.shadow,
 }:
+
+let
+  # https://github.com/NixOS/nixpkgs/pull/576347
+  cacert' = cacert.overrideAttrs rec {
+    version = "3.131.1";
+
+    src = pkgs.fetchurl {
+      urls =
+        let
+          # This file is effectively a public interface, see the homepage link
+          file = "lib/ckfw/builtins/certdata.txt";
+          tag = "NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM";
+        in
+        [
+          # Prefer mercurial as the canonical source, while github is just a 
mirror
+          "https://hg-edge.mozilla.org/projects/nss/raw-file/${tag}/${file}";
+          
"https://raw.githubusercontent.com/nss-dev/nss/refs/tags/${tag}/${file}";
+        ];
+      hash = "sha256-PsK00kDcEsdH6vRQBh24SvdXxIO72jAvninOtdcL5RA=";
+    };
+  };
+in
+
+let
+  cacert = cacert';
+in
+
 let
   defaultPkgs = [
     nix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/flake.lock new/nix-2.35.4/flake.lock
--- old/nix-2.35.3/flake.lock   2026-10-13 13:32:25.000000000 +0200
+++ new/nix-2.35.4/flake.lock   2026-10-22 20:54:38.000000000 +0200
@@ -60,11 +60,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1782535326,
-        "narHash": "sha256-r4TA57SL7nvj1R+GY/FCLwFU48w9IixTQlzBTIYkt8E=",
-        "rev": "714a5f8c4ead6b31148d829288440ed033ccc041",
+        "lastModified": 1792503283,
+        "narHash": "sha256-OtQ9jaQ9aXZDm61TqykPLZdXJa2NMykYG3d0tbT683U=",
+        "rev": "cd4ea8d57de16f4810bc5f14207bac45fbf19f67",
         "type": "tarball",
-        "url": 
"https://releases.nixos.org/nixos/26.05/nixos-26.05.3494.714a5f8c4ead/nixexprs.tar.xz";
+        "url": 
"https://releases.nixos.org/nixos/26.05/nixos-26.05.12297.cd4ea8d57de1/nixexprs.tar.xz";
       },
       "original": {
         "type": "tarball",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/maintainers/flake-module.nix 
new/nix-2.35.4/maintainers/flake-module.nix
--- old/nix-2.35.3/maintainers/flake-module.nix 2026-10-13 13:32:25.000000000 
+0200
+++ new/nix-2.35.4/maintainers/flake-module.nix 2026-10-22 20:54:38.000000000 
+0200
@@ -82,6 +82,9 @@
               
''^tests/functional/lang/eval-fail-bad-string-interpolation-3\.nix$''
               
''^tests/functional/lang/eval-fail-bad-string-interpolation-4\.nix$''
               ''^tests/functional/lang/eval-okay-regex-match2\.nix$''
+              ''^tests/functional/lang/eval-okay-scope-1\.nix$''
+              ''^tests/functional/lang/eval-okay-scope-2\.nix$''
+              ''^tests/functional/lang/eval-okay-scope-3\.nix$''
 
               # URL literal tests - nixfmt converts unquoted URLs to strings
               ''^tests/functional/lang/eval-fail-url-literal\.nix$''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/packaging/binary-tarball.nix 
new/nix-2.35.4/packaging/binary-tarball.nix
--- old/nix-2.35.3/packaging/binary-tarball.nix 2026-10-13 13:32:25.000000000 
+0200
+++ new/nix-2.35.4/packaging/binary-tarball.nix 2026-10-22 20:54:38.000000000 
+0200
@@ -5,9 +5,37 @@
   cacert,
   nix,
   nixComponents2,
+  lib,
+  fetchurl,
 }:
 
 let
+  # https://github.com/NixOS/nixpkgs/pull/576347
+  cacert' = cacert.overrideAttrs rec {
+    version = "3.131.1";
+
+    src = fetchurl {
+      urls =
+        let
+          # This file is effectively a public interface, see the homepage link
+          file = "lib/ckfw/builtins/certdata.txt";
+          tag = "NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM";
+        in
+        [
+          # Prefer mercurial as the canonical source, while github is just a 
mirror
+          "https://hg-edge.mozilla.org/projects/nss/raw-file/${tag}/${file}";
+          
"https://raw.githubusercontent.com/nss-dev/nss/refs/tags/${tag}/${file}";
+        ];
+      hash = "sha256-PsK00kDcEsdH6vRQBh24SvdXxIO72jAvninOtdcL5RA=";
+    };
+  };
+in
+
+let
+  cacert = cacert';
+in
+
+let
 
   inherit (stdenv.hostPlatform) system;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/packaging/dependencies.nix 
new/nix-2.35.4/packaging/dependencies.nix
--- old/nix-2.35.3/packaging/dependencies.nix   2026-10-13 13:32:25.000000000 
+0200
+++ new/nix-2.35.4/packaging/dependencies.nix   2026-10-22 20:54:38.000000000 
+0200
@@ -17,16 +17,16 @@
   inherit stdenv;
 
   mimalloc =
-    if lib.versionAtLeast pkgs.mimalloc.version "3.3.2" then
+    if lib.versionAtLeast pkgs.mimalloc.version "3.5.1" then
       pkgs.mimalloc
     else
       pkgs.mimalloc.overrideAttrs rec {
-        version = "3.3.2";
+        version = "3.5.1";
         src = pkgs.fetchFromGitHub {
           owner = "microsoft";
           repo = "mimalloc";
           tag = "v${version}";
-          hash = "sha256-GZ37qQVDe9jgMb4Coe5oKvgaLTspZDlSkS5rdy1MfUU=";
+          hash = "sha256-hljle/jR2hNvy2ikdOna9QZiyqzAuMjNUfC7vxl7g7k=";
         };
       };
 
@@ -41,7 +41,7 @@
         # small, run Nix with GC_PRINT_STATS=1 and look for messages
         # such as `Mark stack overflow`, `No room to copy back mark
         # stack`, and `Grew mark stack to ... frames`.
-        NIX_CFLAGS_COMPILE = "-DINITIAL_MARK_STACK_SIZE=1048576";
+        env.NIX_CFLAGS_COMPILE = "-DINITIAL_MARK_STACK_SIZE=1048576";
       });
 
   curl = pkgs.curl.override {
@@ -62,6 +62,34 @@
       );
   };
 
+  # Force the s2n TLS backend in aws-c-io on macOS; Apple SecureTransport is 
not
+  # fork-safe and crashes daemon workers (NixOS/nix#15857). Override it across
+  # the whole aws-c-* stack so one aws-c-io is shared.
+  aws-crt-cpp =
+    if !stdenv.hostPlatform.isDarwin then
+      pkgs.aws-crt-cpp
+    else
+      let
+        aws-c-io = pkgs.aws-c-io.overrideAttrs (old: {
+          patches = (old.patches or [ ]) ++ [ 
./patches/aws-c-io-s2n-darwin.patch ];
+        });
+        aws-c-http = pkgs.aws-c-http.override { inherit aws-c-io; };
+        aws-c-auth = pkgs.aws-c-auth.override { inherit aws-c-io aws-c-http; };
+        aws-c-event-stream = pkgs.aws-c-event-stream.override { inherit 
aws-c-io; };
+        aws-c-mqtt = pkgs.aws-c-mqtt.override { inherit aws-c-io aws-c-http; };
+        aws-c-s3 = pkgs.aws-c-s3.override { inherit aws-c-io aws-c-http 
aws-c-auth; };
+      in
+      pkgs.aws-crt-cpp.override {
+        inherit
+          aws-c-io
+          aws-c-http
+          aws-c-auth
+          aws-c-event-stream
+          aws-c-mqtt
+          aws-c-s3
+          ;
+      };
+
   sqlite =
     if !stdenv.hostPlatform.isWindows then
       pkgs.sqlite
@@ -73,21 +101,6 @@
         ];
       });
 
-  libgit2 =
-    if lib.versionAtLeast pkgs.libgit2.version "1.9.4" then
-      pkgs.libgit2
-    else
-      # Grab newer libgit2.
-      pkgs.libgit2.overrideAttrs rec {
-        version = "1.9.4";
-        src = pkgs.fetchFromGitHub {
-          owner = "libgit2";
-          repo = "libgit2";
-          tag = "v${version}";
-          hash = "sha256-ZKUiz3pdFE2SKxh53X2oyr7hs32Njj5YVA0OXDXz7h0=";
-        };
-      };
-
   # TODO Hack until https://github.com/NixOS/nixpkgs/issues/45462 is fixed.
   boost =
     (pkgs.boost.override {
@@ -98,14 +111,6 @@
         "--with-iostreams"
         "--with-url"
       ];
-      patches = lib.optional (
-        lib.versionAtLeast pkgs.boost.version "1.88"
-        && lib.versionOlder pkgs.boost.version "1.92"
-        # may already be done in nixpkgs: 
https://github.com/NixOS/nixpkgs/pull/546405
-        && !lib.any (patch: lib.hasInfix 
"5883212311535a0046031d74d1568ae173c1e35b" (baseNameOf patch)) (
-          pkgs.boost.patches or [ ]
-        )
-      ) 
./patches/0001-Fix-uncaught_exceptions-not-accounting-for-forced_un.patch;
       enableIcu = false;
     }).overrideAttrs
       (old: {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nix-2.35.3/packaging/patches/0001-Fix-uncaught_exceptions-not-accounting-for-forced_un.patch
 
new/nix-2.35.4/packaging/patches/0001-Fix-uncaught_exceptions-not-accounting-for-forced_un.patch
--- 
old/nix-2.35.3/packaging/patches/0001-Fix-uncaught_exceptions-not-accounting-for-forced_un.patch
    2026-10-13 13:32:25.000000000 +0200
+++ 
new/nix-2.35.4/packaging/patches/0001-Fix-uncaught_exceptions-not-accounting-for-forced_un.patch
    1970-01-01 01:00:00.000000000 +0100
@@ -1,102 +0,0 @@
-From 5883212311535a0046031d74d1568ae173c1e35b Mon Sep 17 00:00:00 2001
-From: Sergei Zimmerman <[email protected]>
-Date: Tue, 21 Jul 2026 21:15:51 +0000
-Subject: [PATCH] Fix uncaught_exceptions() not accounting for forced_unwind
-
-Unwound fibers would see std::uncaught_exceptions() == 0, while a
-forced_unwind exception is in "flight". This goes against the contract
-of std::uncaught_exceptions() that scope guards rely upon. Failing
-to report the correct number of uncaught exceptions (especially
-misreporting zero) will lead to scope guards to misbehave badly and skip
-running cleanup code which branches on whether the destructor is called
-during stack unwinding or not.
-
-This is because the "throw" would happen before the destructor is run on
-the fiber stack being switched to, but the increment would be clobbered
-by the destructor of manage_exception_state.
-
-I'm not sure what the contract of run ontop_fcontext is wrt to whether
-the the caller provided function can throw or not, but in my best
-understanding the forced_unwind mechanism is mostly internal and so is
-throwing from ontop_fcontext in the switched-to fiber. Thus, I've kept
-the catch block scoped to detail::forced_unwind.
----
- include/boost/context/fiber_fcontext.hpp | 37 +++++++++++++++++-------
- test/test_fiber.cpp                      | 24 +++++++++++++++
- 2 files changed, 51 insertions(+), 10 deletions(-)
-
-diff --git a/include/boost/context/fiber_fcontext.hpp 
b/include/boost/context/fiber_fcontext.hpp
-index 543ba6c..38476c9 100644
---- a/boost/context/fiber_fcontext.hpp
-+++ b/boost/context/fiber_fcontext.hpp
-@@ -70,7 +70,9 @@ namespace context {
- namespace detail {
- 
- // manage_exception_state is a dummy struct unless we have specific support
--struct manage_exception_state {};
-+struct manage_exception_state {
-+    void from_forced_unwind() noexcept {}
-+};
- 
- } // namespace detail
- } // namespace context
-@@ -90,6 +92,11 @@ public:
-     manage_exception_state() {
-         exception_state_ = *__cxa_get_globals();
-     }
-+    // Hack to account for the forced_unwind exception thrown in fiber_unwind
-+    // that's run ontop before the destructor.
-+    void from_forced_unwind() noexcept {
-+        exception_state_.uncaughtExceptions += 1;
-+    }
-     ~manage_exception_state() {
-         *__cxa_get_globals() = exception_state_;
-     }
-@@ -376,13 +383,18 @@ public:
-         BOOST_ASSERT( nullptr != fctx_);
-         detail::manage_exception_state exstate;
-         boost::ignore_unused(exstate);
--        return { detail::jump_fcontext(
-+        try {
-+            return { detail::jump_fcontext(
- #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
--                    detail::exchange( fctx_, nullptr),
-+                        detail::exchange( fctx_, nullptr),
- #else
--                    std::exchange( fctx_, nullptr),
-+                        std::exchange( fctx_, nullptr),
- #endif
--                    nullptr).fctx };
-+                        nullptr).fctx };
-+        } catch ( detail::forced_unwind const& ) {
-+            exstate.from_forced_unwind();
-+            throw;
-+        }
-     }
- 
-     template< typename Fn >
-@@ -391,14 +403,19 @@ public:
-         detail::manage_exception_state exstate;
-         boost::ignore_unused(exstate);
-         auto p = std::forward< Fn >( fn);
--        return { detail::ontop_fcontext(
-+        try {
-+            return { detail::ontop_fcontext(
- #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
--                    detail::exchange( fctx_, nullptr),
-+                        detail::exchange( fctx_, nullptr),
- #else
--                    std::exchange( fctx_, nullptr),
-+                        std::exchange( fctx_, nullptr),
- #endif
--                    & p,
--                    detail::fiber_ontop< fiber, decltype(p) >).fctx };
-+                        & p,
-+                        detail::fiber_ontop< fiber, decltype(p) >).fctx };
-+        } catch ( detail::forced_unwind const& ) {
-+            exstate.from_forced_unwind();
-+            throw;
-+        }
-     }
- 
-     explicit operator bool() const noexcept {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nix-2.35.3/packaging/patches/aws-c-io-s2n-darwin.patch 
new/nix-2.35.4/packaging/patches/aws-c-io-s2n-darwin.patch
--- old/nix-2.35.3/packaging/patches/aws-c-io-s2n-darwin.patch  1970-01-01 
01:00:00.000000000 +0100
+++ new/nix-2.35.4/packaging/patches/aws-c-io-s2n-darwin.patch  2026-10-22 
20:54:38.000000000 +0200
@@ -0,0 +1,29 @@
+diff --git a/source/s2n/s2n_tls_channel_handler.c 
b/source/s2n/s2n_tls_channel_handler.c
+index d1047f8..cab5bfa 100644
+--- a/source/s2n/s2n_tls_channel_handler.c
++++ b/source/s2n/s2n_tls_channel_handler.c
+@@ -1760,10 +1760,6 @@ static struct aws_tls_ctx *s_tls_ctx_new(
+                     AWS_LS_IO_TLS, "Failed to set ca_path: %s and ca_file 
%s\n", s_default_ca_dir, s_default_ca_file);
+                 goto cleanup_s2n_config;
+             }
+-#    ifdef __APPLE__
+-            /* On macOS, load user root CAs from keychains */
+-            aws_tls_s2n_load_macos_keychain_root_cas(s2n_ctx->s2n_config, 
alloc);
+-#    endif
+         } else {
+             /* Cannot find system's trust store */
+             aws_raise_error(AWS_IO_TLS_ERROR_DEFAULT_TRUST_STORE_NOT_FOUND);
+diff --git a/source/tls_channel_handler.c b/source/tls_channel_handler.c
+index de516be..2784f5d 100644
+--- a/source/tls_channel_handler.c
++++ b/source/tls_channel_handler.c
+@@ -817,7 +817,8 @@ void aws_tls_init_vtable(struct aws_allocator *allocator) {
+ 
+ #    elif defined(__APPLE__) && defined(USE_S2N)
+     struct aws_string *use_non_fips_13 = aws_get_env_nonempty(allocator, 
"AWS_CRT_USE_NON_FIPS_TLS_13");
+-    if (use_non_fips_13) {
++    // nix#15857: use s2n TLS, not fork-unsafe Apple SecureTransport
++    if (true) {
+         s2n_init_tls_vtable(&s_tls_channel_handler_vtable);
+         aws_string_destroy(use_non_fips_13);
+     } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/src/libstore/gc.cc 
new/nix-2.35.4/src/libstore/gc.cc
--- old/nix-2.35.3/src/libstore/gc.cc   2026-10-13 13:32:25.000000000 +0200
+++ new/nix-2.35.4/src/libstore/gc.cc   2026-10-22 20:54:38.000000000 +0200
@@ -561,7 +561,7 @@
 
         results.paths.insert(path);
 
-        uint64_t bytesFreed;
+        uint64_t bytesFreed = 0;
         deleteStorePath(realPath, bytesFreed, isKnownPath);
 
         results.bytesFreed += bytesFreed;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nix-2.35.3/src/libstore/include/nix/store/local-store.hh 
new/nix-2.35.4/src/libstore/include/nix/store/local-store.hh
--- old/nix-2.35.3/src/libstore/include/nix/store/local-store.hh        
2026-10-13 13:32:25.000000000 +0200
+++ new/nix-2.35.4/src/libstore/include/nix/store/local-store.hh        
2026-10-22 20:54:38.000000000 +0200
@@ -366,6 +366,11 @@
      *
      * @param isKnownPath true if this is a known store path, false if it's
      *        garbage/unknown content found in the store directory
+     *
+     * @param[out] bytesFreed An estimation of how many bytes of disk space 
have been reclaimed.
+     *             It should be considered to be only a rough estimate.
+     *             Initialised to zero by this function so that the caller may 
not need to initialise
+     *             it.
      */
     virtual void deleteStorePath(const std::filesystem::path & path, uint64_t 
& bytesFreed, bool isKnownPath);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/src/libstore/local-overlay-store.cc 
new/nix-2.35.4/src/libstore/local-overlay-store.cc
--- old/nix-2.35.3/src/libstore/local-overlay-store.cc  2026-10-13 
13:32:25.000000000 +0200
+++ new/nix-2.35.4/src/libstore/local-overlay-store.cc  2026-10-22 
20:54:38.000000000 +0200
@@ -213,6 +213,8 @@
 
 void LocalOverlayStore::deleteStorePath(const std::filesystem::path & path, 
uint64_t & bytesFreed, bool isKnownPath)
 {
+    bytesFreed = 0;
+
     if (path.parent_path() != config->realStoreDir.get()) {
         warn("local-overlay: unexpected gc path %s", PathFmt(path));
         return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nix-2.35.3/src/libutil/include/nix/util/file-system.hh 
new/nix-2.35.4/src/libutil/include/nix/util/file-system.hh
--- old/nix-2.35.3/src/libutil/include/nix/util/file-system.hh  2026-10-13 
13:32:25.000000000 +0200
+++ new/nix-2.35.4/src/libutil/include/nix/util/file-system.hh  2026-10-22 
20:54:38.000000000 +0200
@@ -278,6 +278,11 @@
  */
 void deletePath(const std::filesystem::path & path);
 
+/**
+ * @param[out] bytesFreed Estimation of how many bytes of disk space have
+ *                        been reclaimed. Initialised to zero internally, so
+ *                        the caller doesn't need to initialise it.
+ */
 void deletePath(const std::filesystem::path & path, uint64_t & bytesFreed);
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/src/libutil/meson.build 
new/nix-2.35.4/src/libutil/meson.build
--- old/nix-2.35.3/src/libutil/meson.build      2026-10-13 13:32:25.000000000 
+0200
+++ new/nix-2.35.4/src/libutil/meson.build      2026-10-22 20:54:38.000000000 
+0200
@@ -54,7 +54,10 @@
 
 if host_machine.system() == 'windows'
   socket = cxx.find_library('ws2_32')
-  deps_other += socket
+  # `NtCreateFile` and `RtlNtStatusToDosError`, used by the `*at`-style file
+  # system functions in `windows/file-system-at.cc`, live here.
+  nt = cxx.find_library('ntdll')
+  deps_other += [ socket, nt ]
 elif host_machine.system() == 'sunos'
   socket = cxx.find_library('socket')
   network_service_library = cxx.find_library('nsl')
@@ -239,7 +242,7 @@
 if host_machine.system() == 'windows'
   # `libraries_private` cannot contain ad-hoc dependencies (from
   # `find_library), so we need to do this manually
-  libraries_private += [ '-lws2_32' ]
+  libraries_private += [ '-lws2_32', '-lntdll' ]
 endif
 
 subdir('nix-meson-build-support/export')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nix-2.35.3/src/libutil/unix/file-system.cc 
new/nix-2.35.4/src/libutil/unix/file-system.cc
--- old/nix-2.35.3/src/libutil/unix/file-system.cc      2026-10-13 
13:32:25.000000000 +0200
+++ new/nix-2.35.4/src/libutil/unix/file-system.cc      2026-10-22 
20:54:38.000000000 +0200
@@ -274,7 +274,7 @@
 
 void deletePath(const std::filesystem::path & path, uint64_t & bytesFreed)
 {
-    // Activity act(*logger, lvlDebug, "recursively deleting path '%1%'", 
path);
+    bytesFreed = 0;
 #ifdef __FreeBSD__
     std::set<std::filesystem::path> mountedPaths;
     struct statfs * mntbuf;
@@ -287,7 +287,6 @@
         mountedPaths.emplace(mntbuf[i].f_mntonname);
     }
 #endif
-    bytesFreed = 0;
     _deletePath(path, bytesFreed MOUNTEDPATHS_ARG);
 }
 

Reply via email to