Age | Commit message (Collapse) | Author |
|
|
|
Fix formatting for options with "machine-specific" defaults
|
|
|
|
this includes a `welcomeText` attribute which can be set in the
template, as well as outputing which files were created.
|
|
|
|
InstallableFlake: Default attr paths cleanup
|
|
This removes some duplicated logic, and fixes "nix bundle" parsing its
installable twice.
|
|
Fix using sandbox without user namespaces
|
|
|
|
parseInstallables(): Don't try the flake attr path prefixes when no fragment is specified
|
|
profile: add verbosity
|
|
warn if there are no matches and give notice of removing packages as
they are found
|
|
is specified
Fixes #5880.
|
|
|
|
|
|
|
|
Revert "mk: prefert inplace library paths to system ones (take 2)"
|
|
|
|
mk: prefert inplace library paths to system ones (take 2)
|
|
It's a second attempt to merge the change. Previous attempt
was reverted in b976b34a5b05ba303904cc7b8e0a2579bdb52807.
Since then underlying failure exposed by original change was
fixed by https://github.com/NixOS/nix/pull/5354.
Below goes description of original change:
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
|
|
repl/load-flake: throw error if path isn't specified
|
|
Make sure no exceptions leave ignoreException()
|
|
I noticed that occasional Ctrl-C leaves *.lock files around.
`nix-daemon`'s journal logs contained crashes like:
nix-daemon[30416]: terminate called after throwing an instance of 'nix::SysError'
nix-daemon[30416]: what(): error: writing to file: Broken pipe
And core dump backtraces pointed at `teriminate()` call from
destructors:
...
_Unwind_Resume ()
nix::ignoreException() ()
nix::LocalDerivationGoal::~LocalDerivationGoal()
...
void ignoreException()
{
try {
throw;
} catch (std::exception & e) {
printError("error (ignored): %1%", e.what());
}
}
The crashes happen when client side closes early and printError() throws
an IO error.
The change wraps `ignoreException()` into blanket `try { ... } catch (...) {}`.
Closes: https://github.com/NixOS/nix/issues/6046
|
|
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
|
|
Fixes #5985.
|
|
|
|
This changes the representation of the interrupt callback list to
be safe to use during interrupt handling.
Holding a lock while executing arbitrary functions is something to
avoid in general, because of the risk of deadlock.
Such a deadlock occurs in https://github.com/NixOS/nix/issues/3294
where ~CurlDownloader tries to deregister its interrupt callback.
This happens during what seems to be a triggerInterrupt() by the
daemon connection's MonitorFdHup thread. This bit I can not confirm
based on the stack trace though; it's based on reading the code,
so no absolute certainty, but a smoking gun nonetheless.
|
|
Allow missing flake.nix for --override-input target
|
|
nix-shell: set BASH variable to correct shell
|
|
fix nix repl not overriding existing bindings in :a
|
|
completions: pipe stderr to /dev/null
|
|
|
|
This fixes weird issues where e.g.
nix build -L .#<tab>
deletes the current line from the prompt.
|
|
previously :a would override old bindings of a name with new values if the added
set contained names that were already bound. in nix 2.6 this doesn't happen any
more, which is potentially confusing.
fixes #6041
|
|
At this point, we don’t know if the input is a flake or not. So, we
should allow the user to override the input with a directory without a
flake.nix.
Ideally, we could figure whether the input was originally a flake or
not, but that would require instantiating the whole flake. So just
allow it to be missing here, and rely on checks later on to verify the
input for us.
|
|
|
|
|
|
bundle: pass drv attrset instead of path
|
|
|
|
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)
|
|
|
|
|
|
Fixes #6021.
|
|
use LOWDOWN_LIBS variable
|
|
flakes: document nixConfig option
|
|
fixes: #5931
|
|
canonPath: fix missing slash when resolving links
|
|
fix spelling mistakes reported by Debian's lintian tool
|
|
|