John Ericson
11b0fcd6cd
Merge pull request #14667 from Mic92/fix-remote-builder-hang
...
daemon: fix hang on SSH disconnect during remote builds
2025-11-27 14:47:21 +00:00
Jörg Thalheim
98c7ca2c9f
daemon: fix hang on SSH disconnect during remote builds
...
When an SSH connection dies during a remote build, MonitorFdHup correctly
detects the disconnect and calls triggerInterrupt(). However, without
ReceiveInterrupts instantiated, no SIGUSR1 is sent to interrupt the
blocking read() syscall. This causes the daemon to hang indefinitely
while holding file locks, blocking subsequent builds.
The fix instantiates ReceiveInterrupts in processConnection(), which
registers a callback to send SIGUSR1 to the current thread when
triggerInterrupt() is called. This allows the blocking read() to return
with EINTR, causing checkInterrupt() to throw and the daemon to exit
cleanly.
This pattern is already used in ThreadPool::doWork() and
SubstitutionGoal for the same purpose.
2025-11-27 13:56:37 +01:00
John Ericson
a3d77a4bf2
Merge pull request #14664 from NixOS/fix-i686-asan
...
libstore: Align LocalFSStore to 8 bytes even on i686-linux
2025-11-27 04:26:08 +00:00
John Ericson
ad07be0a55
Merge pull request #14665 from vinayakankugoyal/path
...
Use std::filesystem::path in libmain.
2025-11-27 03:01:56 +00:00
Ubuntu
16f218b37c
Use std::filesystem::path in libmain.
2025-11-27 01:36:52 +00:00
John Ericson
35492fe94a
Merge pull request #14632 from NixOS/path-setting
...
Add `Setting<std::filesystem::path>` and `Setting<std::optional<std::filesystem::path>>` specializations
2025-11-27 00:29:28 +00:00
Sergei Zimmerman
7c76a812fe
libstore: Align LocalFSStore to 8 bytes even on i686-linux
...
This works around https://hydra.nixos.org/build/314579538/nixlog/1 .
2025-11-27 03:08:11 +03:00
John Ericson
d3aa04561f
Merge pull request #14659 from vinayakankugoyal/path
...
Use std::filesystem::path in libflake.
2025-11-27 00:07:58 +00:00
John Ericson
80c545bcdc
Fix include errors masked by precompiled headers
2025-11-26 18:43:32 -05:00
John Ericson
1e36f203e6
Fix issues with std::filesystem::path settings
2025-11-26 18:18:50 -05:00
John Ericson
37cf990b41
Merge branch 'master' into path-setting
2025-11-26 17:57:45 -05:00
Ubuntu
3e8c220b60
Use std::filesystem::path in libflake.
2025-11-27 01:39:37 +03:00
Eelco Dolstra
aa0265f77e
Merge pull request #14656 from NixOS/cleanup-github-attrs
...
Move GitHub input attribute validation into inputFromAttrs()
2025-11-26 19:16:24 +00:00
Eelco Dolstra
e7f95783db
Move GitHub input attribute validation into inputFromAttrs()
...
Previously inputFromAttrs() didn't do any validation. inputFromURL()
now calls inputFromAttrs(), so we only need to validate in one place.
Fixes #14655 .
2025-11-26 19:38:42 +01:00
John Ericson
3c2d5a1bdc
Merge pull request #14652 from vinayakankugoyal/path
...
Replace Path with std::filesystem::path in libfetchers.
2025-11-26 17:07:43 +00:00
Ubuntu
f0390758dd
Replace Path with std::filesystem::path in libfetchers.
2025-11-26 11:23:41 -05:00
Ubuntu
e761a9fb6d
Use std::filesystem::path instead of Path in libexpr.
2025-11-26 11:18:38 -05:00
Eelco Dolstra
2e262c6685
Merge pull request #14643 from NixOS/binary-cache-nar-from-path
...
BinaryCacheStore::narFromPath(): Fix unreachable code
2025-11-26 09:53:23 +00:00
John Ericson
15b222b6d6
Merge pull request #14650 from xokdvium/double-quotes-lockfiles
...
libstore: Fix double quotes in debug logs for pathlocks
2025-11-26 02:53:39 +00:00
John Ericson
c38349583f
Merge pull request #14651 from NixOS/restore-sink-more-openat2
...
libutil: Use openFileEnsureBeneathNoSymlinks in RestoreSink::createRe…
2025-11-26 01:45:50 +00:00
John Ericson
31ce0c8169
Merge pull request #14649 from vinayakankugoyal/path
...
Use std::filesystem::path instead of Path in libexpr.
2025-11-26 01:23:16 +00:00
Sergei Zimmerman
0778b861a9
libutil: Use openFileEnsureBeneathNoSymlinks in RestoreSink::createRegularFile
...
Add more assertions for preconditions of openFileEnsureBeneathNoSymlinks to prevent
misuse. Also start using it for regular file creation as well.
2025-11-26 03:49:33 +03:00
Sergei Zimmerman
3716bd9a62
libstore: Fix double quotes in debug logs for pathlocks
...
This is now using std::filesystem which gets double-quoted.
2025-11-26 03:31:32 +03:00
Ubuntu
697b068756
Use std::filesystem::path instead of Path in libexpr.
2025-11-26 00:22:26 +00:00
John Ericson
6cc44e4fdf
Merge pull request #14647 from NixOS/fix-progress-bar
...
libmain: Fix download progress rendering
2025-11-25 22:52:04 +00:00
Taeer Bar-Yam
952be9fc96
Merge pull request #14644 from Radvendii/fix-14642
...
parser.y: properly abstract over to-be-created strings
2025-11-25 22:39:38 +00:00
Sergei Zimmerman
4031343e44
libmain: Fix download progress rendering
...
This was broken in https://github.com/NixOS/nix/pull/14423 accidentally.
Add [[nodiscard]] to prevent such mistakes in the future.
2025-11-26 01:22:47 +03:00
Taeer Bar-Yam
0c0a41a81a
tests: add tests for dynamic attribute in let and inherit
...
Regression tests for the previous commit.
Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
Co-authored-by: piegames <git@piegames.de>
2025-11-26 00:10:40 +03:00
Taeer Bar-Yam
97abcda9cc
parser.y: correctly abstract over to-be-constructed ExprString
...
Fixes the regression from eab467ecfb with
dynamic attributes that a simple string expressions.
Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
2025-11-25 23:33:58 +03:00
John Ericson
423e732b22
Merge pull request #14641 from obsidiansystems/simplify-nix-develop
...
Simplify `nix develop` "gathering derivation environment"
2025-11-25 19:08:12 +00:00
John Ericson
05990fb2ec
Merge pull request #14555 from NixOS/more-store-ffi
...
libstore-c: Add new derivation and store path functions
2025-11-25 18:51:56 +00:00
John Ericson
6a4a1e9f72
Skip new part of functional test on NixOS
...
It's very weird it doesn't work here, but I don't mind not debugging
this now as I just added this part of the functional test --- it's
already better than it was before.
2025-11-25 13:35:03 -05:00
John Ericson
1c10ce6047
libstore-c: Add new derivation and store path functions
...
Add several new functions to the C API:
StorePath operations:
- nix_store_path_hash: Extract the hash part from a store path
- nix_store_create_from_parts: Construct a store path from hash and name
Derivation operations:
- nix_derivation_clone: Clone a derivation
- nix_derivation_to_json: Serialize a derivation to JSON
Store operations:
- nix_store_drv_from_store_path: Load a derivation from a store path
Test the new functions, and improve documentation of some existing
functions to better distinguish them, also.
Co-authored-by: Tristan Ross <tristan.ross@determinate.systems>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2025-11-25 13:18:10 -05:00
John Ericson
6f33f64ce5
C API: Need to try-catch around new
...
Per https://en.cppreference.com/w/cpp/memory/new/operator_new.html , it
can throw if the allocation fails.
2025-11-25 13:00:13 -05:00
John Ericson
801cb16131
Simplify nix develop "gathering derivation environment"
...
Before, had some funny logic with an unnecessary is CA enabled branch,
and erroneous use of the comma operator. Now, take advantage of the new
`Derivation::fillInOutputPaths` to fill in input addresses (and output
path env vars) in a much-more lightweight manner.
Also, fix `nix develop` on fixed-output derivations so that weird things
don't happen when we have that experimental feature enabled.
As a slight behavior change, if the original derivation was
content-addressing this one will be too, but I really don't think that
matters --- if anything, it is a slight improvement for users that have
already opted into content-addressing anyways.
2025-11-25 11:29:42 -05:00
John Ericson
e91b7d1732
Test nix develop on fixed-output derivations
...
It half works today, we should fix this but also not regress it!
2025-11-25 11:27:20 -05:00
John Ericson
ab58d2720c
Make nix-shell.sh functional test debuggable
...
Without this change, when one runs wit with `meson test --interactive`,
that command will block waiting on standard input to be closed.
2025-11-25 11:11:55 -05:00
Eelco Dolstra
7ba84437be
BinaryCacheStore::narFromPath(): Fix unreachable code
...
When this function is called as a coroutine (e.g. when it's called by
`copyStorePath()`), the code after `decompressor->finish()` is never
reached because the coroutine is destroyed when the caller reaches the
end of the NAR. So put that code in a `LambdaSink` destructor.
2025-11-25 14:23:36 +01:00
Eelco Dolstra
d7b6afecdb
LambdaSink: Allow passing a destructor callback
2025-11-25 14:16:00 +01:00
Eelco Dolstra
c72f3dc27e
Merge pull request #14638 from NixOS/dependabot/github_actions/actions/checkout-6
...
build(deps): bump actions/checkout from 5 to 6
2025-11-25 13:12:18 +00:00
John Ericson
d1470f76c7
Merge pull request #14640 from vinayakankugoyal/path
...
Use std::filesystem::path instead of Path in libcmd
2025-11-25 05:37:16 +00:00
John Ericson
84079e10cf
No more Path in libnixcmd
...
Co-authored-by: Vinayak Goyal <vinayakankugoyal@gmail.com>
2025-11-25 05:00:09 +00:00
John Ericson
88c9c6d89d
Merge pull request #14636 from NixOS/openat2-wrapper
...
libutil/file-descriptor: Add safer utilities for opening files relati…
2025-11-24 23:23:51 +00:00
John Ericson
4f4da90513
Merge pull request #13942 from NixOS/json-no-store-dir
...
JSON impl and Schema for `DummyStore`
2025-11-24 23:06:13 +00:00
Jörg Thalheim
3e9104c9ca
Merge pull request #14637 from lovesegfault/aws-crt-cpp-log-level
...
feat(libstore): tie AWS CRT logging to Nix verbosity level
2025-11-24 22:45:45 +00:00
Sergei Zimmerman
3a9be9fd2f
libutil: Use openFileEnsureBeneathNoSymlinks in RestoreSink::createDirectory
...
Starts using the new function.
2025-11-25 01:10:35 +03:00
John Ericson
0275b64b81
JSON impl and Schema for DummyStore
...
This is the "keystone" that puts most of the other store-layer JSON
formats together.
Also, add some documentation for JSON testing.
2025-11-24 17:04:24 -05:00
John Ericson
622a5cd1bf
Add DummyStore::operator==
...
Will need it for tests.
2025-11-24 17:04:24 -05:00
John Ericson
b0c016ae7d
DummyStore build trace holds UnkeyedRealisation by value
...
Otherwise the equality instance we need to add will be messed up.
2025-11-24 17:04:24 -05:00
John Ericson
f78e88c973
Add some infrastructure changes for better JSON ref<T> impls
...
Also skip a trailing semicolon inside a macro so the caller can use it
instead, which is generally nicer to the formatter.
2025-11-24 17:04:23 -05:00