Age | Commit message (Collapse) | Author |
|
add antiquotations to paths
|
|
I don't think this changes the way any program would behave, but it's a
cleaner internal representation.
|
|
|
|
Don’t send the experimental-features to the daemon
|
|
|
|
Issues #4499.
|
|
Don't overwrite user provided `lib*_LDFLAGS`
|
|
EvalState lifetime hygiene
|
|
If the client sends an “experimental features” setting, just ignore it
|
|
|
|
|
|
This fixes a use-after-free bug:
1. s = new EvalState();
2. callFlake()
3. static vCallFlake now references s
4. delete s;
5. s2 = new EvalState();
6. callFlake()
7. static vCallFlake still references s
8. crash
Nix 2.3 did not have a problem with recreating EvalState.
|
|
This fixes a class of crashes and introduces ptr<T> to make the
code robust against this failure mode going forward.
Thanks regnat for the idea of a ref<T> without overhead!
Closes #4895
Closes #4893
Closes #5127
Closes #5113
|
|
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
|
|
https://github.com/ArctarusLimited/nix
|
|
Replace invalid characters in json logger
|
|
Fixes #5159
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
|
|
“packages” was probably meant to be “packages.${system}.” but that
is already listed in `getDefaultFlakeAttrPathPrefixes` in `installables`,
which is probably why no one noticed it was broken.
|
|
It currently fails with the following error:
error: flake 'git+file://…' does not provide attribute 'devShells.x86_64-linuxhaskell', 'packages.x86_64-linux.haskell', 'legacyPackages.x86_64-linux.haskell' or 'haskell'
|
|
For git+file and path flakes, chdir to flake directory so that phases
that expect to be in the flake directory can run
Fixes https://github.com/NixOS/nix/issues/3976
|
|
`nix-flake show --json`
|
|
|
|
Install pkg-config files in the correct location
|
|
|
|
Use `$(libdir)` while installing .pc files looks like a more generic
solution. For example, it will work for distributions like RHEL or
Fedora where .pc files are installed in `/usr/lib64/pkgconfig`.
|
|
This is a bit more informative than just the hash.
Also, format the diffs a bit nicer.
|
|
* libstore: `bz2` should not be linked
* libutil: `zlib.h` should not be included
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
Minor maintenance cleaning
|
|
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
|
|
nix-shell --pure: Let it work for any derivation
|
|
Fix potential race-condition in reference scanning code
|
|
libstore: use set instead of list for waiter list
|
|
This replaces the O(n) search complexity in our insert code with a
lookup of O(log n). It also makes removing waitees easier as we can use
the extract method provided by the set class.
|
|
|
|
Previously the code ensures that the isBase32 array would only be
initialised once in a single-threaded context. If two threads happen to
call the function before the initialisation was completed both of them
would have completed the initialization step. This allowed for a
race-condition where one thread might be done with the initialization
but the other thread sets all the fields to false again. For a brief
moment the base32 detection would then produce false-negatives.
|
|
flake-registry should be safe to set to an aribtrary value, since it
is identical to just setting `inputs`.
|
|
`nix-shell --pure` when applied to a non stdenv derivation doesn't seem
to clear the PATH. It expects the stdenv/setup file to do so.
This adds an explicit `unset PATH` by nix-build.cc (nix-shell) itself so
that it's not reliant on stdenv/setup anymore.
This does not break impure nix-shell since the PATH is persisted as the
variable `p` prior in the bash rcfile
fixes #5092
|
|
libutil: initialize the base64 decode array only once
|
|
|
|
|
|
|
|
Previously, despite having a boolean that tracked initialization, the
decode characters have been "calculated" every single time a base64
string was being decoded.
With this change we only initialize the decode array once in a
thread-safe manner.
|
|
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
The experimental features are, well, experimental, and shouldn’t be
carelessly and transparently enabled.
Besides, some (`ca-derivations` at least) need to be enabled at startup
in order to work properly.
So it’s better to just require that daemon be started with the right
`experimental-features` option.
Fix #5017
|
|
Enable pthreads for new libraries
|
|
Fixes #5024.
|
|
--eval-store and faster closure copying
|
|
|