mirror of
https://github.com/NixOS/nix.git
synced 2025-11-12 13:36:02 +01:00
Nix, the purely functional package manager
When `nix::connect` is called with a socket path that's too long, it forks a process that will `chdir` to the directory of the socket path and call `::connect` with the relative path (which is hopefully short-enough). That works fairly well, except that an exception raised in this subprocess won't be forwarded to the parent process. Instead the logic will just notice that the subprocess exited with a non-zero error code, and throw a generic `Error`. In particular, any failure in the `::connect` call should throw a `SysError` with the correct error code, but that's not the case. Some places try to catch this `SysError` and look at its error code (to potentially restart for example). But this doesn't work since the actual error that gets thrown isn't a `SysError`. Fix that by forwarding the `errno` in case something gets wrong (by setting the subprocess exit code to it), and throwing a `SysError` with the right error code in the parent process. |
||
|---|---|---|
| .github | ||
| config | ||
| contrib | ||
| doc/manual | ||
| m4 | ||
| maintainers | ||
| misc | ||
| mk | ||
| perl | ||
| scripts | ||
| src | ||
| tests | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitignore | ||
| .version | ||
| boehmgc-coroutine-sp-fallback.diff | ||
| bootstrap.sh | ||
| configure.ac | ||
| COPYING | ||
| default.nix | ||
| docker.nix | ||
| flake.lock | ||
| flake.nix | ||
| local.mk | ||
| Makefile | ||
| Makefile.config.in | ||
| precompiled-headers.h | ||
| README.md | ||
| shell.nix | ||
Nix
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
- Nix manual
- Nix jobsets on hydra.nixos.org
- NixOS Discourse
- Matrix - #nix:nixos.org
- IRC - #nixos on libera.chat
License
Nix is released under the LGPL v2.1.