Age | Commit message (Collapse) | Author |
|
mk: prefert inplace library paths to system ones
|
|
EvalState lifetime hygiene
|
|
Force all Pos* to be non-null
|
|
|
|
|
|
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
|
|
The link failure happens on a system with stable nix-2.3.15
installed in /usr/lib64 (it's libutil.so API differs from master):
```
LANG=C make V=1
g++ -o /home/slyfox/dev/git/nix/src/libstore/libnixstore.so \
-shared -L/usr/lib64 -Wl,--no-copy-dt-needed-entries \
src/libstore/binary-cache-store.o ... src/libstore/uds-remote-store.o \
-lsqlite3 -lcurl -lsodium -pthread -ldl -lseccomp -Wl,-z,defs -Wl,-soname=libnixstore.so
-Wl,-rpath,/home/slyfox/dev/git/nix/src/libutil -Lsrc/libutil -lnixutil
ld: src/libstore/binary-cache-store.o: in function `nix::BinaryCacheStore::BinaryCacheStore(
std::map<std::__cxx11::basic_string<char, std::char_traits<char>, ...
nix/src/libstore/binary-cache-store.cc:30: undefined reference to `nix::readFile(
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ...
...
```
This happens due to `-L/usr/lib64 -Lsrc/libutil` search path ordering.
The change turns it into `-Lsrc/libutil -L/usr/lib64`.
Closes: https://github.com/NixOS/nix/issues/3087
|
|
|
|
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'
|
|
15f4d4f Documentation follow-up
|
|
|
|
Remove rsync usage in the installer
|
|
It's not commonly installed on systems like debian,
so avoid the bootstrapping problem by using cp and
chmod.
|
|
|
|
|
|
Install pkg-config files in the correct location
|
|
fix typo in ca-error message
|
|
|
|
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`.
|
|
configure.ac: remove another uname check
|
|
uname checks are not cross-safe.
The normalization for Cygwin doesn't need any equivalent for host_os
because nothing actually checked whether sys_name was cygwin any more.
|
|
Improve flake lock file diffs
|
|
Flake lock file changes:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/f77036342e2b690c61c97202bf48f2ce13acc022' (2021-06-28)
→ 'github:NixOS/nixpkgs/f6551e1efa261568c82b76c3a582b2c2ceb1f53f' (2021-08-11)
|
|
This is a bit more informative than just the hash.
Also, format the diffs a bit nicer.
|
|
15f4d4f follow up
|
|
* libstore: `bz2` should not be linked
* libutil: `zlib.h` should not be included
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
Fix host OS detection for darwin-specific linker flag
|
|
|
|
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
|
|
Whitelist nixConfig.flake-registry
|
|
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
|
|
doc/manual: don't need to copy `highlight.js` manually
|
|
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
|
|
fix git init race condition
|
|
|
|
nix-shell -p: pass `--arg`s as nixpkgs parameters
|