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
Robert Hensing fba7be80eb Enable -Werror=switch-enum
switch statements must now match all enum values or disable the
warning.

Explicit is good. This has helped us find two bugs, after solving
another one by debugging.

From now on, adding to an enum will raise errors where they are
not explicitly handled, which is good for productivity, and helps
us decide the correct behavior in all usages.

Notably still excluded from this though are the cases where the
warning is disabled by local pragmas.

fromTOML.cc did not build despite a top-level pragma, so I've had
to resort to a makefile solution for that.
2023-04-03 18:45:20 +02:00
.github Mention internal API docs in PR template 2023-04-02 19:44:44 -04: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 process includes first 2023-03-30 13:55:44 +02:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers Prioritize testing in the maintainers process docs 2023-03-16 22:27:46 -04:00
misc Add a setting for configuring the SSL certificates file 2023-03-17 18:32:18 +01:00
mk Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
perl Fix building with GCC 9 2023-02-10 18:38:57 +01:00
scripts Merge pull request #7925 from cole-h/fixup-xdg-nix-env 2023-03-01 23:01:42 +01:00
src Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
tests Merge pull request #8148 from hercules-ci/fix-issue-8119-printValue-tBlackhole-abort 2023-04-03 16:05:55 +02:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Clean up daemon handling 2023-02-23 11:31:44 -05:00
.version Bump version 2023-03-02 10:01:24 +01:00
boehmgc-coroutine-sp-fallback.diff Update boehmgc-coroutine-sp-fallback.diff 2023-01-24 15:11:55 +01:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac Generate API docs with Doxygen 2023-03-10 12:51:06 -05:00
CONTRIBUTING.md Add CONTRIBUTING.md 2023-03-11 22:14:14 +01:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
docker.nix docker.nix: add an option to include flake-registry inside docker image (#6750) 2023-03-22 20:55:02 +01:00
flake.lock add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
flake.nix Remove nixpkgsFor flake output 2023-03-31 16:08:16 +02:00
local.mk Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
Makefile Generate API docs with Doxygen 2023-03-10 12:51:06 -05:00
Makefile.config.in Generate API docs with Doxygen 2023-03-10 12:51:06 -05:00
precompiled-headers.h Config: Use nlohmann/json 2020-08-20 11:02:16 +02:00
README.md Improve hacking.md 2023-02-13 12:00:00 +04: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 to set up a development environment and build Nix from source.

Additional Resources

License

Nix is released under the LGPL v2.1.