about summary refs log tree commit diff
path: root/src/libmain/shared.cc
AgeCommit message (Collapse)AuthorFilesLines
2017-02-01 Restore default signal handling in child processesEelco Dolstra1-19/+10
In particular, this fixes Ctrl-C in nix-shell sessions.
2017-01-26 Fix interrupt handlingEelco Dolstra1-0/+9
2017-01-19 Kill builds when we get EOF on the log FDEelco Dolstra1-1/+1
This closes a long-time bug that allowed builds to hang Nix indefinitely (regardless of timeouts) simply by doing exec > /dev/null 2>&1; while true; do true; done Now, on EOF, we just send SIGKILL to the child to make sure it's really gone.
2017-01-17 Handle SIGINT etc. via a sigwait() signal handler threadEelco Dolstra1-17/+3
This allows other threads to install callbacks that run in a regular, non-signal context. In particular, we can use this to signal the downloader thread to quit. Closes #1183.
2016-11-26 Revert "Get rid of unicode quotes (#1140)"Eelco Dolstra1-8/+8
This reverts commit f78126bfd6b6c8477fcdbc09b2f98772dbe9a1e7. There really is no need for such a massive change...
2016-11-25 Get rid of unicode quotes (#1140)Guillaume Maudoux1-8/+8
2016-09-21 printMsg(lvlError, ...) -> printError(...) etc.Eelco Dolstra1-11/+11
2016-08-10 Remove $NIX_DB_DIREelco Dolstra1-1/+0
This variable has no reason to exist, given $NIX_STATE_DIR.
2016-07-11 Modernize AutoCloseFDShea Levy1-2/+2
2016-04-25 Show the log tail when a build failsEelco Dolstra1-1/+1
If --no-build-output is given (which will become the default for the "nix" command at least), show the last 10 lines of the build output if the build fails.
2016-04-25 Remove --print-build-traceEelco Dolstra1-3/+0
This was added to support Hydra, but Hydra no longer uses it.
2016-04-25 Improved logging abstractionEelco Dolstra1-2/+1
This also gets rid of --log-type, since the nested log type isn't useful in a multi-threaded situation, and nobody cares about the "pretty" log type.
2016-03-29 Improve SIGINT handling in multi-threaded programsEelco Dolstra1-9/+2
The flag remembering whether an Interrupted exception was thrown is now thread-local. Thus, all threads will (eventually) throw Interrupted. Previously, one thread would throw Interrupted, and then the other threads wouldn't see that they were supposed to quit.
2016-03-29 Re-enable sync_with_stdioEelco Dolstra1-3/+0
Otherwise writing to std::cerr is not thread-safe (in particular, lines will be randomly duplicated).
2016-02-25 Merge branch 'master' into new-cliEelco Dolstra1-4/+21
2016-02-23 Pool<T>: Allow a maximum pool sizeEelco Dolstra1-0/+1
2016-02-22 Make OpenSSL usage thread-safeEelco Dolstra1-4/+20
OpenSSL can randomly segfault unless we register a callback function to do locking. https://www.openssl.org/docs/manmaster/crypto/threads.html
2016-02-09 New command line parsing infrastructureEelco Dolstra1-77/+71
2016-02-04 StoreAPI -> StoreEelco Dolstra1-2/+2
Calling a class an API is a bit redundant...
2016-02-04 Eliminate the "store" global variableEelco Dolstra1-5/+4
Also, move a few free-standing functions into StoreAPI and Derivation. Also, introduce a non-nullable smart pointer, ref<T>, which is just a wrapper around std::shared_ptr ensuring that the pointer is never null. (For reference-counted values, this is better than passing a "T&", because the latter doesn't maintain the refcount. Usually, the caller will have a shared_ptr keeping the value alive, but that's not always the case, e.g., when passing a reference to a std::thread via std::bind.)
2016-01-28 printMissing(): Propagate store argumentEelco Dolstra1-3/+3
2015-07-23 --version: Print some config infoEelco Dolstra1-0/+14
Such as whether Nix is built with signed binary cache support, and the location of the configuration file.
2015-07-20 Support systemd log severity prefixesEelco Dolstra1-0/+4
This is mostly useful for hydra-queue-runner.
2015-05-21 nix-collect-garbage: Call collectGarbage() internallyEelco Dolstra1-0/+15
2015-01-02 Allow $NIX_PAGER to override $PAGEREelco Dolstra1-4/+5
2014-12-14 PedantryEelco Dolstra1-1/+1
2014-12-14 Merge branch 'cygwin-master' of https://github.com/ternaris/nixEelco Dolstra1-0/+1
2014-12-12 Don't abort if we get a signal while waiting for the pagerEelco Dolstra1-4/+8
2014-12-10 Provide default pagersEelco Dolstra1-3/+8
Borrowed from systemd.
2014-12-10 Revert "Use posix_spawn to run the pager"Eelco Dolstra1-30/+8
This reverts commit d34d2b2bbf784c0bb420a50905af25e02c6e4989.
2014-12-09 Explicitly include required C headersMarko Durkovic1-0/+1
2014-12-05 Define ‘environ’Eelco Dolstra1-0/+2
http://hydra.nixos.org/build/17690555
2014-12-05 Use posix_spawn to run the pagerEelco Dolstra1-8/+30
In low memory environments, "nix-env -qa" failed because the fork to run the pager hit the kernel's overcommit limits. Using posix_spawn gets around this. (Actually, you have to use posix_spawn with the undocumented POSIX_SPAWN_USEVFORK flag, otherwise it just uses fork/exec...)
2014-10-14 Remove redundant space in usage errorsEelco Dolstra1-1/+1
2014-09-26 printMissing(): Print derivations in approximate build orderEelco Dolstra1-6/+9
2014-08-20 Flush std::cout before closing stdoutEelco Dolstra1-0/+1
2014-08-20 Provide reasonable default flags for $LESSEelco Dolstra1-1/+2
Borrowed from systemd.
2014-08-20 Use proper quotes everywhereEelco Dolstra1-9/+9
2014-08-20 Add some colorEelco Dolstra1-6/+5
2014-08-20 nix-store -l: Automatically pipe output into $PAGEREelco Dolstra1-0/+40
2014-08-13 Handle compound single dash options properlyEelco Dolstra1-15/+14
So now nix-instantiate --eval -E '{x}: x' --argstr x -xyzzy correctly prints "-xyzzy", rather than giving an error. Issue NixOS/hydra#176.
2014-08-13 Refactor option handlingEelco Dolstra1-48/+34
2014-08-13 Remove pointless NIX_LOG_TYPE environment variableEelco Dolstra1-4/+0
2014-07-31 Restore default SIGPIPE handler before invoking ‘man’Eelco Dolstra1-3/+3
Fixes NixOS/nixpkgs#3410.
2014-05-23 Ugly hack to allow --argstr values starting with a dashEelco Dolstra1-0/+7
Fixes #265.
2014-03-29 restoreSIGPIPE(): Fill in sa_maskEelco Dolstra1-1/+1
Issue #231.
2014-02-08 Add download-via-ssh substituterShea Levy1-0/+3
This substituter connects to a remote host, runs nix-store --serve there, and then forwards substituter commands on to the remote host and sends their results to the calling program. The ssh-substituter-hosts option can be specified as a list of hosts to try. This is an initial implementation and, while it works, it has some limitations: * Only the first host is used * There is no caching of query results (all queries are sent to the remote machine) * There is no informative output (such as progress bars) * Some failure modes may cause unhelpful error messages * There is no concept of trusted-ssh-substituter-hosts Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-21 Merge branch 'master' into makeEelco Dolstra1-0/+5
Conflicts: src/libexpr/eval.cc
2013-12-20 nix-shell: Don't warn about the lack of a GC rootEelco Dolstra1-0/+5
2013-11-23 Drop the dependency on libgc in libmainEelco Dolstra1-20/+0
Instead, libexpr now depends on libgc. This means commands like nix-store that don't do any evaluation no longer require libgc.