Eelco Dolstra
f6aa8c0486
Merge pull request #14581 from NixOS/clone-all
...
nix flake clone: Support all input types
2025-11-17 19:28:19 +00:00
John Ericson
958866b9a6
Merge pull request #9732 from NixOS/systematize-fetchTree-docs
...
Systematize `builtins.fetchTree` docs
2025-11-17 18:58:48 +00:00
Eelco Dolstra
d07c24f4c8
nix flake clone: Support all input types
...
For input types that have no concept of cloning, we now default to
copying the entire source tree.
2025-11-17 19:50:50 +01:00
Eelco Dolstra
95da93c05b
Input::clone(): Use std::filesystem::path
2025-11-17 19:44:24 +01:00
John Ericson
bae1ca257a
Systematize builtins.fetchTree docs
...
And also render the docs nicely.
I would like to use a markdown AST for this, but to avoid new deps
(lowdown's AST doesn't suffice) I am just doing crude string
manipulations for now.
2025-11-17 13:10:03 -05:00
Eelco Dolstra
f8141a2c26
Merge pull request #14574 from pkpbynum/pb/fix-registry-pin
...
Fix registry pin ref lookup
2025-11-17 18:09:13 +00:00
John Ericson
2cc0b1b404
Introduce quoteString utility function
2025-11-17 12:33:26 -05:00
John Ericson
5446d6345f
Merge pull request #14576 from corngood/cygwin-tests
...
Fix/disable tests on cygwin
2025-11-17 04:22:10 +00:00
David McFarland
b115c90043
Disable MonitorFdHup test on cygwin
2025-11-16 23:33:28 -04:00
David McFarland
13b896a188
Disable toString/ToStringPrimOpTest.toString/10 on cygwin
2025-11-16 23:32:29 -04:00
Sergei Zimmerman
5462c5eedd
Merge pull request #8871 from teto/flake_show_attr
...
nix flake show: name attribute that must be a derivation
2025-11-16 19:48:15 +00:00
John Ericson
aec59a973a
Merge pull request #14573 from corngood/libexpr-leak
...
nix_api_expr: ensure destructors are called for builder/state
2025-11-16 04:28:08 +00:00
Peter Bynum
8642c0a9a2
Fix registry pin ref lookup
2025-11-15 14:42:09 -08:00
Matthieu Coudron
653d701300
Merge branch 'master' into flake_show_attr
2025-11-15 23:30:42 +01:00
David McFarland
8d881ee3a3
nix_api_expr: ensure destructors are called for builder/state
...
I found this because of a test failure on cygwin in
nix_api_expr_test.nix_eval_state_lookup_path:
'std::filesystem::__cxx11::filesystem_error'
what(): filesystem error: cannot remove all: Device or resource busy
[...]
[.../my_state/db/db.sqlite]
LocalState was never getting destroyed due to a reference leak. These
_free functions use an 'operator delete' which doesn't call the
destructor for the type.
Fixes: 309d55807c
2025-11-15 15:39:39 -04:00
David McFarland
2872c8ede0
Fix leaks in nix_api_store_test.nix_eval_state_lookup_path
2025-11-15 15:38:39 -04:00
David McFarland
57f526ecda
Fix nix_api_store_test.nix_eval_state_lookup_path when run on its own
...
Currently, --gtest_filter=nix_api_store_test.nix_eval_state_lookup_path
will result in:
terminating due to unexpected unrecoverable internal error: Assertion
'gcInitialised' failed in void nix::assertGCInitialized() at
../src/libexpr/eval-gc.cc:138
Changing the test fixture to _exr_test causes GC to be initialised.
2025-11-15 15:36:49 -04:00
John Ericson
1f2a994fb9
Merge pull request #14568 from NixOS/proper-range-canon-path
...
libutil: Make CanonPath a proper range
2025-11-15 17:09:13 +00:00
Sergei Zimmerman
0e81a35881
libutil: Make CanonPath a proper range
...
This was we can use std::ranges algorithms on it. Requires
making the iterator a proper forward iterator type as well.
2025-11-14 22:45:20 +03:00
John Ericson
94c3bb3e4c
Merge pull request #14562 from NixOS/no-races-posix-source-accessor
...
libutil: Make PosixSourceAccessor update mtime only when needed
2025-11-14 04:48:41 +00:00
John Ericson
30dbc7ee0c
Merge pull request #14563 from NixOS/dead-variable
...
libstore: Remove dead PosixSourceAccessor variable in verifyStore
2025-11-14 04:42:38 +00:00
Sergei Zimmerman
19ab65c9d7
libstore: Remove dead PosixSourceAccessor variable in verifyStore
2025-11-14 04:18:53 +03:00
John Ericson
805496657d
Merge pull request #14550 from roberth/fetchers-settings-arg
...
Remove setting from Input
2025-11-13 22:59:27 +00:00
Sergei Zimmerman
e95503cf9a
libutil: Make PosixSourceAccessor update mtime only when needed
...
Typically PosixSourceAccessor can be used from multiple threads,
but mtime is not updated atomically (i.e. with compare_exchange_weak),
so mtime gets raced. It's only needed in dumpPathAndGetMtime and mtime
tracking can be gated behind that.
Also start using getLastModified interface instead of dynamic casts.
2025-11-13 23:54:14 +03:00
Eelco Dolstra
1bcbe652fb
Merge pull request #14537 from NixOS/dependabot/github_actions/cachix/install-nix-action-31.8.3
...
build(deps): bump cachix/install-nix-action from 31.8.2 to 31.8.3
2025-11-13 17:13:59 +00:00
Jörg Thalheim
f98bc8f41f
Merge pull request #14557 from raboof/document-avoiding-secrets-in-the-store
...
docs: avoid secrets in the nix store
2025-11-13 14:40:00 +00:00
Jörg Thalheim
af7127459d
Merge pull request #14551 from corngood/static-data-headers
...
Remove static data from headers
2025-11-13 14:39:23 +00:00
Arnout Engelen
91cdd88714
docs: avoid secrets in the nix store
...
I think this is noncontroversial / common knowledge, but I didn't
see it described anywhere authoratively yet.
2025-11-13 13:04:12 +01:00
David McFarland
1b5af49fd0
Remove static data from headers
...
We don't want to duplicate any of these across libraries, which is what
happens when the platform doesn't support unique symbols.
2025-11-12 19:54:30 -04:00
Robert Hensing
292bd390af
Remove setting from Input
...
This is more straightforward and not subject to undocumented memory
safety restrictions.
Also easier to test.
2025-11-12 23:42:09 +01:00
John Ericson
3645671570
Merge pull request #14545 from NixOS/fetchTree-sort
...
Sort the `builtins.fetchTree` doc's lists
2025-11-12 20:25:29 +00:00
John Ericson
c7f17358fc
Merge pull request #14549 from Alexis211/doc/fix-nar-format
...
doc: fix "Nix Archive (NAR) format" specification
2025-11-12 20:10:17 +00:00
Alex Auvolat
ddc3fba9fb
doc: fix "Nix Archive (NAR) format" specification
...
For executable files in NAR archives, the `executable` tag is followed
by an empty string, which was not indicated correctly in the
specification.
Adding the empty string can be seen in `src/libutil/archive.cc:62`.
Here is an example of a hexdump of a NAR archives where this empty
string can be seen:
```
00000730 65 6e 74 72 79 00 00 00 01 00 00 00 00 00 00 00 |entry...........|
00000740 28 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 |(...............|
00000750 6e 61 6d 65 00 00 00 00 10 00 00 00 00 00 00 00 |name............|
00000760 6c 69 62 6d 70 66 72 2e 73 6f 2e 36 2e 32 2e 31 |libmpfr.so.6.2.1|
00000770 04 00 00 00 00 00 00 00 6e 6f 64 65 00 00 00 00 |........node....|
00000780 01 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 |........(.......|
00000790 04 00 00 00 00 00 00 00 74 79 70 65 00 00 00 00 |........type....|
000007a0 07 00 00 00 00 00 00 00 72 65 67 75 6c 61 72 00 |........regular.|
000007b0 0a 00 00 00 00 00 00 00 65 78 65 63 75 74 61 62 |........executab|
000007c0 6c 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |le..............|
000007d0 08 00 00 00 00 00 00 00 63 6f 6e 74 65 6e 74 73 |........contents|
000007e0 a0 16 0c 00 00 00 00 00 7f 45 4c 46 02 01 01 00 |.........ELF....|
000007f0 00 00 00 00 00 00 00 00 03 00 3e 00 01 00 00 00 |..........>.....|
00000800 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
00000810 e0 0e 0c 00 00 00 00 00 00 00 00 00 40 00 38 00 |............@.8.|
00000820 0b 00 40 00 1f 00 1e 00 01 00 00 00 04 00 00 00 |..@.............|
00000830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
```
(taken from `09zrxnn4j5hjxqj93xvxrl1dpmq4cyajas3yf7a7y0i7h81m6bd4.nar`,
available on `cache.nixos.org`)
2025-11-12 20:16:00 +01:00
John Ericson
af0ac14021
Merge pull request #14544 from Radvendii/evalmemory-alocbytes
...
move allocBytes() into EvalMemory
2025-11-11 17:29:55 +00:00
John Ericson
abb7d2a96e
Sort the builtins.fetchTree doc's lists
...
This makes the output easier to compare with the new machine-generated
lists in #9732 .
The hand-curated order did have the advantage of putting more important
attributes at the top, but I don't think it is worth preserving that
when `std::map` is so much easier to work with. The right solution to
leading the reader to the more important attributes is to call them out
in the intro texts.
2025-11-11 11:53:37 -05:00
Taeer Bar-Yam
7ff3cc65e4
move allocBytes() into EvalMemory
2025-11-11 17:48:07 +01:00
John Ericson
918c1a9e58
Merge pull request #14489 from roberth/shell-a-la-carte
...
Infer devShell deps, provide smaller one
2025-11-11 16:17:05 +00:00
Jörg Thalheim
091c0a97e1
Merge pull request #14504 from obsidiansystems/json-along-side-rpc-proto-test-data
...
JSON alongside binary proto serialization test data
2025-11-11 08:12:04 +00:00
John Ericson
f2253a00bc
Merge pull request #14541 from NixOS/correct-error-message
...
libexpr: Fix error message in forceStringNoCtx
2025-11-11 01:47:48 +00:00
Sergei Zimmerman
a5eba9a354
libexpr: Fix error message in forceStringNoCtx
...
Otherwise it would print the address of the value.
2025-11-11 04:12:44 +03:00
John Ericson
295ad5c05f
Merge pull request #14503 from obsidiansystems/store-info-transitional
...
Make `ValidPathInfo`, `NarInfo` JSON instances, but don't yet use in the CLI
2025-11-11 00:20:18 +00:00
John Ericson
204749270b
JSON alongside binary proto serialization test data
...
This makes the proto serializer characterisation test data be
accompanied by JSON data.
This is arguably useful for a reasons:
- The JSON data is human-readable while the binary data is not, so it
provides some indication of what the test data means beyond the C++
literals.
- The JSON data is language-agnostic, and so can be used to quickly rig
up tests for implementation in other languages, without having source
code literals at all (just go back and forth between the JSON and the
binary).
- Even though we have no concrete plans to place the binary protocol 1-1
or with JSON, it is still nice to ensure that the JSON serializers and
binary protocols have (near) equal coverage over data types, to help
ensure we didn't forget a JSON (de)serializer.
2025-11-10 18:32:31 -05:00
John Ericson
f5390e76e4
Make ValidPathInfo, NarInfo JSON instances, but don't yet use in the CLI
...
Make instances for them that share code with `nix path-info`, but do a
slightly different format without store paths containing store dirs
(matching the other latest JSON formats).
Progress on #13570 .
If we depend on the store dir, our JSON serializers/deserializers take
extra arguements, and that interfaces with the likes of various
frameworks for associating these with types (e.g. nlohmann in C++, Serde
in Rust, and Aeson in Haskell).
For now, `nix path-info` still uses the previous format, with store
dirs. We may yet decide to "rip of the band-aid", and just switch it
over, but that is left as a future PR.
2025-11-10 18:31:44 -05:00
John Ericson
533db37ebc
Merge pull request #14464 from lovesegfault/nix-s3-storage-class
...
feat(libstore): add S3 storage class support
2025-11-10 22:54:12 +00:00
John Ericson
d00c419ed6
Merge pull request #14530 from NixOS/nix-develop-cleanups-0
...
Two cleanups `nix develop`
2025-11-10 22:26:46 +00:00
John Ericson
87a2ce492f
Merge pull request #14535 from Radvendii/parser-cleanup
...
parser.y cleanup
2025-11-10 22:01:06 +00:00
dependabot[bot]
2150d7a754
build(deps): bump cachix/install-nix-action from 31.8.2 to 31.8.3
...
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action ) from 31.8.2 to 31.8.3.
- [Release notes](https://github.com/cachix/install-nix-action/releases )
- [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md )
- [Commits](456688f15b...7ec16f2c06 )
---
updated-dependencies:
- dependency-name: cachix/install-nix-action
dependency-version: 31.8.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 22:00:54 +00:00
Eelco Dolstra
d1f750a714
nix develop: getBuildEnvironment return StorePath
2025-11-10 16:41:17 -05:00
Eelco Dolstra
af1db7774f
Convert C++ function doc to Doxygen style
...
Otherwise Doxygen won't pick it up
2025-11-10 16:40:04 -05:00
Taeer Bar-Yam
90ba96a3d6
libexpr: use std::span rather than const std::vector &
2025-11-10 22:06:16 +01:00