Age | Commit message (Collapse) | Author |
|
libfetchers/git: fetch submodules by default
|
|
|
|
In dry run mode, new derivations can't be create, so running the command on anything that has not been evaluated before results in an error message of the form `don't know how to build these paths (may be caused by read-only store access)`.
For comparison, the classical `nix-build --dry-run` doesn't use read-only mode.
Closes #1795
(cherry picked from commit 54525682df707742e58311c32e9c9cb18de1e31f)
|
|
If the store path contains a flake, this means that a command like
"nix path-info /path" will show info about /path, not about the
default output of the flake in /path. If you want the latter, you can
explicitly ask for it by doing "nix path-info path:/path".
Fixes #4568.
|
|
Don’t create lockfiles with an invalid path name
|
|
|
|
Store paths are only allowed to contain a limited subset of the
alphabet, which doesn’t include `!`. So don’t create lockfiles that
contain this `!` character as that would otherwise confuse (and break)
the gc.
Fix #5176
|
|
|
|
|
|
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'
|
|
|
|
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
|
|
|
|
|
|
|