Alexander Bantyev
169ea0b83f
Flake follows: resolve all follows to absolute
...
It's not possible in general to know in computeLocks, relative to
which path the follows was intended to be. So, we always resolve
follows to their absolute states when we encounter them (which can
either be in parseFlakeInput or computeLocks' fake input population).
Fixes https://github.com/NixOS/nix/issues/6013
Fixes https://github.com/NixOS/nix/issues/5609
Fixes https://github.com/NixOS/nix/issues/5697 (again)
2022-02-02 21:41:45 +03:00
Eelco Dolstra
59b6afec07
Merge pull request #6022 from thkoch2001/fix-lowdown_libs
...
use LOWDOWN_LIBS variable
2022-01-31 13:40:54 +01:00
Eelco Dolstra
cc730bd46b
Merge pull request #5990 from lincolnauster/flakes-nixconfig-docs
...
flakes: document nixConfig option
2022-01-31 10:21:15 +01:00
Thomas Koch
43509cc69d
use LOWDOWN_LIBS variable
...
fixes : #5931
2022-01-30 20:59:58 +02:00
Eelco Dolstra
08fc3d6552
Merge pull request #6018 from dtzWill/fix/issue-6017
...
canonPath: fix missing slash when resolving links
2022-01-30 12:32:02 +01:00
Thomas Koch
85b1427662
fix spelling mistakes reported by Debian's lintian tool
2022-01-30 10:51:39 +02:00
Will Dietz
a0357abda7
canonPath: fix missing slash when resolving links
...
Fixes #6017
2022-01-29 16:32:27 -06:00
Eelco Dolstra
4bf6af7b55
Remove a repeated std::move in a for loop
2022-01-28 15:10:43 +01:00
regnat
fcdc60ed22
Don’t require NIX_PATH
entries to be valid paths
...
It’s totally valid to have entries in `NIX_PATH` that aren’t valid paths
(they can even be arbitrary urls or `channel:<channel-name>`).
Fix #5998 and #5980
2022-01-27 16:26:39 +01:00
Eelco Dolstra
9691f86ff7
Stop vendoring nlohmann_json
2022-01-26 11:50:53 +01:00
Eelco Dolstra
4f24a33d34
Merge pull request #5991 from edolstra/remote-nix-version
...
nix store ping: Report Nix daemon version
2022-01-26 09:59:59 +01:00
lincoln auster
c746a429db
fix typo
...
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
2022-01-25 14:55:49 -07:00
Eelco Dolstra
35dbdbedd4
nix store ping: Report Nix daemon version
...
Fixes #5952 .
2022-01-25 21:15:58 +01:00
lincoln auster [they/them]
203ef26974
flakes: document nixConfig option
...
Fixes #5988 .
2022-01-25 12:23:52 -07:00
Eelco Dolstra
5fa624f59a
Merge pull request #5987 from edolstra/rust-cleanup
...
Remove unused Rust stuff
2022-01-25 13:57:22 +01:00
Eelco Dolstra
a04a66c196
Merge pull request #5922 from fzakaria/fzakaria/json-ignore-assertion
...
Add try/catch to queryJSON for assertion and errors
2022-01-25 12:44:20 +01:00
Eelco Dolstra
fcf3528ad1
Remove unused Rust stuff
...
In particular we were still compiling rust-ffi.cc even though we're
not using it.
2022-01-25 11:58:00 +01:00
regnat
f113ea6c73
Fix parsing of variable names that are a suffix of '__curPos'
...
Follow-up from #5969
Fix #5982
2022-01-25 10:49:27 +01:00
Farid Zakaria
8ba7a2d3a8
Do not suppress errors in nix-env from feedback by Eelco
2022-01-24 19:12:13 -08:00
Eelco Dolstra
8cbbaf23e8
Allow builtins.{readFile,path} on invalid paths
...
Stop-gap measure to fix #5975 .
2022-01-24 23:02:28 +01:00
Eelco Dolstra
bed8270c0c
Fix parsing of variable names that are a prefix of '__curPos'
...
Fixes
$ nix-instantiate --parse -E 'x: with x; _'
(x: (with x; __curPos))
2022-01-24 15:18:18 +01:00
Eelco Dolstra
c4fc9b6a8d
ExprConcatStrings::show(): Print values instead of pointers
2022-01-24 15:08:16 +01:00
Eelco Dolstra
7afbdf2545
hiliteMatches(): Style fixes, pass more stuff by reference
2022-01-24 14:47:34 +01:00
Théophane Hufschmitt
4530574363
Merge pull request #5945 from afishhh/master
...
Make `nix search` highlight all regexes and matches
2022-01-24 13:02:51 +01:00
Eelco Dolstra
8c778e3d9d
Merge pull request #5964 from pennae/fix-bulk-alloc
...
allocate a GC root value for the Value cache pointer
2022-01-24 12:43:14 +01:00
Eelco Dolstra
1e2bfd3da5
Merge pull request #5965 from SuperSandro2000/nix-shell-rm
...
nix-shell: use clean rm, not any aliases/functions
2022-01-24 12:40:53 +01:00
Eelco Dolstra
076945c808
Merge pull request #5875 from hercules-ci/fix-large-drv-field-stack-overflow
...
Fix segfault or stack overflow caused by large derivation fields
2022-01-24 12:05:30 +01:00
regnat
ffb28eaa1e
Add a small documentation for hiliteMatches
2022-01-24 10:07:02 +01:00
Sandro Jäckel
040cb7304a
nix-shell: use clean rm, not any aliases/functions
2022-01-23 04:58:00 +01:00
pennae
fd5aa6ee3e
allocate a GC root value for the Value cache pointer
...
keeping it as a simple data member means it won't be scanned by the GC, so
eventually the GC will collect a cache that is still referenced (resulting in
use-after-free of cache elements).
fixes #5962
2022-01-22 21:19:56 +01:00
Fishhh
f82a426502
Add some tests for hiliteMatches in libutil
2022-01-21 20:10:54 +01:00
Fishhh
1e0b7cdc3f
Move hilite_all into libutil and rename it to hiliteMatches
...
The signature was also changed so the function now accepts a vector
instead of an iterator
2022-01-21 20:10:46 +01:00
Robert Hensing
0407436b0f
derivations.cc: Use larger buffer in printString
...
If we want to be careful about hitting the stack protector page, we should use `-fstack-check` instead.
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2022-01-21 17:25:37 +01:00
Eelco Dolstra
128098040b
Fix exception handling around realisePath()
...
This no longer worked correctly because 'path' is uninitialised when
an exception occurs, leading to errors like
… while importing ''
at /nix/store/rrzz5b1pshvzh1437ac9nkl06br81lkv-source/flake.nix:352:13:
So move the adding of the error context into realisePath().
2022-01-21 13:53:18 +01:00
Eelco Dolstra
e85cf34ea3
Merge pull request #5949 from obsidiansystems/old-copyClosure
...
Add back `copyClosure` for plain `StorePath`s
2022-01-21 11:33:32 +01:00
Eelco Dolstra
accfcfff6b
Merge pull request #5943 from NixOS/3204-fix-build-with-newer-nlohmann-json
...
Fix the build with nlohmann/json 3.10.4+
2022-01-21 11:31:39 +01:00
Eelco Dolstra
c7223db871
Merge pull request #5942 from NixOS/5912-quieter-nix-why-depends
...
Make `nix why-depends` quieter by default
2022-01-21 10:18:28 +01:00
Théophane Hufschmitt
fa53250c36
Improve the description of the --precise
option
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2022-01-21 09:52:40 +01:00
John Ericson
5ee937523d
Add back copyClosure
for plain StorePath
s
...
This was removed in 2e199673a5
when
`copyPath` transitioned to use `RealisedPath`. But then in
e9848beca7
we added it back just for
`realisedPath`.
I think it is a good utility function --- one can easily imagine it
becoming optimized in the future, and copying paths *violating* the
closure is a very niche feature.
So if we have `copyPaths` for both sorts of paths, I think we should
have `copyClosure` for both sorts too.
2022-01-20 20:57:44 +00:00
Hubert Głuchowski
9510ad10c5
Make hilite_all
take an iterator of matches instead of a vector.
2022-01-20 17:12:15 +01:00
John Ericson
89f8917a32
Remove dead field in NixArgs
...
This has been unused since 170e86dff5
CC @thufschmitt
2022-01-19 20:26:14 +00:00
Hubert Głuchowski
87fdd23025
Make nix search
highlight all matches of a regex
2022-01-19 20:45:31 +01:00
Hubert Głuchowski
92e8230215
Make nix search
highlight all regexes
2022-01-19 19:08:02 +01:00
Robert Hensing
dec7748119
Replace withBuffer by boost small_vector
...
Although this will leave gaps in the stack, the performance impact
of those should be insignificant and we get a simpler solution
this way.
2022-01-19 15:21:56 +01:00
Robert Hensing
624f18ad90
withBuffer: Make sure to hit the stack protector
2022-01-19 15:21:56 +01:00
Robert Hensing
6dd271b7b4
withBuffer: avoid allocating a std::function
2022-01-19 15:21:56 +01:00
Robert Hensing
55c58580be
Add withBuffer
...
... to avoid non-standard, unidiomatic alloca.
2022-01-19 15:21:56 +01:00
Robert Hensing
d038a67bd3
Fix segfault or stack overflow caused by large derivation fields
...
This removes a dynamic stack allocation, making the derivation
unparsing logic robust against overflows when large strings are
added to a derivation.
Overflow behavior depends on the platform and stack configuration.
For instance, x86_64-linux/glibc behaves as (somewhat) expected:
$ (ulimit -s 20000; nix-instantiate tests/lang/eval-okay-big-derivation-attr.nix)
error: stack overflow (possible infinite recursion)
$ (ulimit -s 40000; nix-instantiate tests/lang/eval-okay-big-derivation-attr.nix)
error: expression does not evaluate to a derivation (or a set or list of those)
However, on aarch64-darwin:
$ nix-instantiate big-attr.nix ~
zsh: segmentation fault nix-instantiate big-attr.nix
This indicates a slight flaw in the single stack protection page
approach that is not encountered with normal stack frames.
2022-01-19 15:21:56 +01:00
regnat
e36add56cf
Fix the build with nlohmann/json 3.10.4+
2022-01-19 14:37:54 +01:00
regnat
dd7c2e0695
Make nix why-depends
quieter by default
...
Unless `--precise` is passed, make `nix why-depends` only show the
dependencies between the store paths, without introspecting them to
find the actual references.
This also makes it ~3x faster
2022-01-19 14:24:14 +01:00