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
Dan Peebles e7cb2847ab Explicitly model all settings and fail on unrecognized ones
Previously, the Settings class allowed other code to query for string
properties, which led to a proliferation of code all over the place making
up new options without any sort of central registry of valid options. This
commit pulls all those options back into the central Settings class and
removes the public get() methods, to discourage future abuses like that.

Furthermore, because we know the full set of options ahead of time, we
now fail loudly if someone enters an unrecognized option, thus preventing
subtle typos. With some template fun, we could probably also dump the full
set of options (with documentation, defaults, etc.) to the command line,
but I'm not doing that yet here.
2017-02-22 20:19:25 -05:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs <nix/fetchurl.nix>: Remove unnecessary assertion 2017-02-16 14:06:47 +01:00
doc/manual Fix XML validity 2017-02-21 13:04:31 +01:00
maintainers Update upload-release script 2017-01-03 11:42:56 +01:00
misc SSL_CERT_FILE -> NIX_SSL_CERT_FILE 2016-10-13 17:09:10 +02:00
mk Revert "Get rid of unicode quotes (#1140)" 2016-11-26 00:38:01 +01:00
perl Move netrcFile to Settings 2017-02-16 14:50:41 +01:00
scripts Merge branch 'nix-copy-closure-c++' of https://github.com/shlevy/nix 2017-02-07 20:47:45 +01:00
src Explicitly model all settings and fail on unrecognized ones 2017-02-22 20:19:25 -05:00
tests useChroot -> useSandbox 2017-02-21 15:21:56 +01:00
.dir-locals.el Add .dir-locals.el for Emacs 2016-01-28 11:12:04 +01:00
.gitignore Merge branch 'nix-copy-closure-c++' of https://github.com/shlevy/nix 2017-02-07 20:47:45 +01:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac Revert "configure.ac: We require C++14 now" 2017-02-21 15:03:32 +01:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
local.mk Remove build-remote.pl.in 2017-02-07 18:49:17 +01:00
Makefile Include config.h implicitly with '-include config.h' in CFLAGS 2017-02-08 21:51:02 +02:00
Makefile.config.in Makefile.config.in: drop unused bsddiff_compat_include 2017-01-24 22:50:28 +00:00
nix.spec.in RPM build: Use parallel make 2017-02-21 14:52:36 +01:00
README.md Readme semantics. 2017-01-01 05:20:47 +05:30
release.nix Drop some Ubuntu releases 2017-02-21 15:20:40 +01:00
shell.nix shell.nix: Add a flag for using clang 2017-01-24 10:53:18 +01:00
version Bump 2016-01-20 16:34:37 +01:00

Nix, the purely functional package manager

Nix is a new take on package management that is fairly unique. Because of it's purity aspects, a lot of issues found in traditional package managers don't appear with Nix.

To find out more about the tool, usage and installation instructions, please read the manual, which is available on the Nix website at http://nixos.org/nix/manual.

Contributing

Take a look at the Hacking Section of the manual. It helps you to get started with building Nix from source.

License

Nix is released under the LGPL v2.1

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.