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
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
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
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
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
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
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
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
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
Jörg Thalheim
439af1dca1
feat(libstore): tie AWS CRT logging to Nix verbosity level
...
Map Nix's verbosity levels to AWS CRT log levels so users can
debug SSO authentication issues without modifying code:
- Default/warn: AWS Warn (errors/warnings only)
- Chatty (-vvv): AWS Info (credential provider actions)
- Debug (-vvvv): AWS Debug (detailed auth flow)
- Vomit (-vvvvv): AWS Trace (full CRT internal tracing)
This makes it easy to diagnose SSO issues with:
nix copy -vvvv --to s3://bucket?profile=foo ...
2025-11-24 17:02:19 -05:00
Sergei Zimmerman
77990e7cca
libutil/file-descriptor: Add safer utilities for opening files relative to dirFd
...
Implements a safe no symlink following primitive operation for opening file descriptors.
This is unix-only for the time being, since windows doesn't really suffer from symlink
races, since they are admin-only.
Tested with enosys --syscall openat2 as well.
2025-11-25 00:42:57 +03:00
John Ericson
3bac0d7aa2
Merge pull request #14635 from Radvendii/alloc-exprlet-exprattrs
...
libexpr: move the ExprLet::attrs allocations into the arena
2025-11-24 21:14:52 +00:00
John Ericson
36419a6ccb
Merge pull request #14507 from obsidiansystems/derivation-options-json-schema
...
JSON Schema for `DerivationOptions`
2025-11-24 21:11:07 +00:00
John Ericson
3ba51bf61b
Merge pull request #14560 from obsidiansystems/fill-in-outputs
...
Dedup some derivation initialization logic, and test
2025-11-24 21:10:38 +00:00
John Ericson
209f413e80
JSON Schema for DerivationOutputs
...
Progress on #13570
2025-11-24 15:23:50 -05:00
John Ericson
b8d32388bc
Move derivation JSON doc to index.md in dir
...
This prepares for more structure.
2025-11-24 15:23:50 -05:00
Taeer Bar-Yam
60f09928d1
libexpr: move ExprLet::attrs data to arena as well
...
I missed this because I assumed all Exprs were recursed into by
bindVars, but ExprLet's ExprAttrs field is not really its own AST node,
so it doesn't get recursed into.
2025-11-24 21:14:13 +01:00
Taeer Bar-Yam
43a183120a
libexpr: factor out functions for moving data to a new allocator
2025-11-24 21:14:13 +01:00
John Ericson
0c786f3a3c
Merge pull request #14617 from vinayakankugoyal/path
...
Update profiles to use `std::filesystem::path`
2025-11-24 19:31:25 +00:00
John Ericson
504c5e7cf9
Convert profiles to use std::filesystem::path
...
Co-authored-by: Vinayak Goyal <vinayakankugoyal@gmail.com>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2025-11-24 13:38:01 -05:00
John Ericson
5d066386b5
Merge pull request #14260 from roberth/ulimit
...
Clarify setStackSize error message and warn if not possible
2025-11-24 17:12:31 +00:00
Eelco Dolstra
93c51acfb5
Add Setting<std::filesystem::path> specialization
...
Like PathSetting, this normalizes the path (without resolving
symlinks).
2025-11-24 17:04:04 +01:00
John Ericson
d689b764f3
Use WorkerProto::Serialise abstraction for DrvOutput
...
It's better to consistently use the abstraction, rather than code which
happens to do the same thing.
See also d782c5e586 for the same sort of
change.
2025-11-24 10:44:45 -05:00
Sergei Zimmerman
28fac9fe4d
nix/prefetch: Be honest about when path name is derived from URL
...
Only add the message to trace when name is really derived from URL.
2025-11-24 00:25:48 +03:00
Jon Hermansen
76ed967f79
libstore: fix curl version check to allow 8.17.0
...
The single-string syntax '>=8.16.0 <8.17.0' only applied the lower
bound, causing curl 8.17.0 to be incorrectly rejected. Split into two
separate version_compare() calls for compatibility with Meson 1.1,
since multi-argument syntax requires Meson 1.8+.
2025-11-23 12:13:05 +03:00