A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Eelco Dolstra f0358ed465 Fix a hang in nix-copy-ssh.sh
This hang for some reason didn't trigger in the Nix build, but did
running 'make installcheck' interactively. What happened:

* Store::addMultipleToStore() calls a SinkToSource object to copy a
  path, which in turn calls LegacySSHStore::narFromPath(), which
  acquires a connection.

* The SinkToSource object is not destroyed after the last bytes has
  been read, so the coroutine's stack is still alive and its
  destructors are not run. So the connection is not released.

* Then when the next path is copied, because max-connections = 1,
  LegacySSHStore::narFromPath() hangs forever waiting for a connection
  to be released.

The fix is to make sure that the source object is destroyed when we're
done with it.
2022-08-23 14:19:53 +02:00
.github update stale bot per RFC 0124 2022-07-10 16:50:49 -07:00
config Run autoupdate 2021-06-01 11:42:38 +02:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc/manual Merge remote-tracking branch 'origin/master' into parallel-nix-copy 2022-08-22 15:29:10 +02:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers Integrate push-docker.sh into the release script 2022-02-18 13:58:01 +01:00
misc nix-daemon.service: sync LimitNOFILE with the nixos service 2022-05-19 21:16:07 +03:00
mk Fix incremental static builds 2022-06-22 17:53:58 +02:00
perl Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
scripts install: only create TMPDIR if missing 2022-08-19 15:16:34 -05:00
src Fix a hang in nix-copy-ssh.sh 2022-08-23 14:19:53 +02:00
tests Fix onError 2022-08-17 11:36:58 +02:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig
.gitignore Fix gitignore 2022-08-04 14:01:27 -04:00
.version Bump version 2022-05-30 21:11:20 +02:00
boehmgc-coroutine-sp-fallback.diff Fix leaking pthread_attr_t 2021-11-03 22:54:16 +01:00
bootstrap.sh
configure.ac Don't use -load_all on darwin 2022-08-03 10:27:25 +02:00
COPYING
default.nix Remove url literals 2022-01-24 13:28:21 +01:00
docker.nix docker.nix: Allow Nix configuration to be customized 2022-07-28 03:36:39 -04:00
flake.lock curl: patch for netrc regression in Nix 2022-07-14 17:45:02 -05:00
flake.nix curl: patch for netrc regression in Nix 2022-07-14 17:45:02 -05:00
local.mk Remove 'dist' target 2020-12-03 16:17:58 +01:00
Makefile Merge branch 'master' into lto 2022-05-25 11:55:13 +00:00
Makefile.config.in Embed the sandbox shell into the statically linked 'nix' binary 2022-06-23 04:08:28 +02:00
precompiled-headers.h Config: Use nlohmann/json 2020-08-20 11:02:16 +02:00
README.md Fix link to hacking doc 2022-07-30 09:12:50 -07:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.