Age | Commit message (Collapse) | Author |
|
Add ccls files to .gitignore
|
|
Fix unspecified behaviour in readStorePathCAMap
|
|
|
|
When deploying a Hydra instance with current Nix master, most builds
would not run because of errors like this:
queue monitor: error: --- Error --- hydra-queue-runner
error: --- UsageError --- nix-daemon
not a content address because it is not in the form '<prefix>:<rest>': /nix/store/...-somedrv
The last error message is from parseContentAddress, which expects a
colon-separated string, however what we got here is a store path.
Looking at the worker protocol, the following message sent to the Nix
daemon caused the error above:
0x1E -> wopQuerySubstitutablePathInfos
0x01 -> Number of paths
0x16 -> Length of string
"/nix/store/...-somedrv"
0x00 -> Length of string
""
Looking at writeStorePathCAMap, the store path is indeed the first field
that's transmitted. However, readStorePathCAMap expects it to be the
*second* field *on my machine*, since expression evaluation order is a
classic form of unspecified behaviour[1] in C++.
This has been introduced in https://github.com/NixOS/nix/pull/3689,
specifically in commit 66a62b3189c8c9b0965850e6b3c9b0fda0b50fd8.
[1]: https://en.wikipedia.org/wiki/Unspecified_behavior#Order_of_evaluation_of_subexpressions
Signed-off-by: aszlig <aszlig@nix.build>
|
|
Co-authored-by: lf- <lf-@users.noreply.github.com>
|
|
The change in 626200713bb3cc844a9feb6af583c9b6b42c6dbc didn't account
for when the number of auto arguments is bigger than the number of
formal arguments. This causes the following:
$ nix-instantiate --eval -E '{ ... }@args: args.foo' --argstr foo foo
nix-instantiate: src/libexpr/attr-set.hh:55: void nix::Bindings::push_back(const nix::Attr&): Assertion `size_ < capacity_' failed.
Aborted (core dumped)
|
|
Add `nix-shell` support for preserving PS1
|
|
|
|
Fixes https://github.com/NixOS/nix/issues/1268
`nix-shell` will now preserve `PS1` if the `NIX_SHELL_PRESERVE_PROMPT`
environment variable is set.
|
|
|
|
- More and better comments
- The easier renames
|
|
Thanks!
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
|
|
Co-authored-by: Théophane Hufschmitt <regnat@users.noreply.github.com>
|
|
Co-authored-by: Théophane Hufschmitt <regnat@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
All GC roots are now indirect.
|
|
This means profiles outside of /nix/var/nix/profiles don't get
garbage-collected. It also means we don't need to scan
/nix/var/nix/profiles for GC roots anymore, except for compatibility
with previously existing generations.
|
|
|
|
This was broken in 50f13b06fb1b2f50a97323c000d1094d090f08ea. Once
again it turns out that putting a bool in a std::variant is a bad
idea, since pointers get silently cast to them...
|
|
Allow HTTP binary cache to request absolute uris
|
|
|
|
Otherwise, the steps advertised in this document won't actually work
(e.g. `make install` will fail, trying to access /usr, and
`./inst/bin/nix` won't exist).
|
|
|
|
|
|
|
|
Convert manual to Markdown
|
|
|
|
|
|
|
|
speed up CI
|
|
|
|
|
|
|
|
For example, for building the Nix flake, you would do:
$ nix develop --configure
$ nix develop --install
$ nix develop --installcheck
|
|
For some reason, the bash shell started by 'nix develop' sometimes
reads from stdin, which can hang.
|
|
Currently, they're set to $(pwd)/outputs/$outputName. This allows
commands like 'make install' to work.
|
|
|
|
Pass all args when auto-calling a function with an ellipsis
|
|
The command line options --arg and --argstr that are used by a bunch of
CLI commands to pass arguments to top-level functions in files go
through the same code-path as auto-calling top-level functions with
their default arguments - this, however, was only passing the arguments
that were *explicitly* mentioned in the formals of the function - in the
case of an as-pattern with an ellipsis (eg args @ { ... }) extra passed
arguments would get omitted. This fixes that to instead pass *all*
specified auto args in the case that our function has an ellipsis.
Fixes #598
|
|
Revise division of labor in deserialization of derivations
|
|
|
|
As pointed out by @B4dM4n, the call to to.flush() on stderrThread is
unsafe because the NAR writer thread is also writing to 'to'.
Fixes #3943.
|
|
|
|
|
|
|
|
|