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
Shea Levy 0bb8db257d Add exec primop behind allow-unsafe-native-code-during-evaluation.
Execute a given program with the (optional) given arguments as the
user running the evaluation, parsing stdout as an expression to be
evaluated.

There are many use cases for nix that would benefit from being able to
run arbitrary code during evaluation, including but not limited to:

* Automatic git fetching to get a sha256 from a git revision
* git rev-parse HEAD
* Automatic extraction of information from build specifications from
  other tools, particularly language-specific package managers like
  cabal or npm
* Secrets decryption (e.g. with nixops)
* Private repository fetching

Ideally, we would add this functionality in a more principled way to
nix, but in the mean time 'builtins.exec' can be used to get these
tasks done.

The primop is only available when the
'allow-unsafe-native-code-during-evaluation' nix option is true. That
flag also enables the 'importNative' primop, which is strictly more
powerful but less convenient (since it requires compiling a plugin
against the running version of nix).
2017-03-30 08:04:21 -04:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs unpack-channel.nix: fix 'mv' corner case 2017-02-27 10:12:58 +01:00
doc/manual Fix tests to reflect the signed-binary-caches default change 2017-03-21 18:06:13 +01:00
maintainers Update upload-release script 2017-01-03 11:42:56 +01:00
misc Dockerfile: 1.11.2 -> 1.11.7 2017-03-11 19:39:13 +01:00
mk Revert "Get rid of unicode quotes (#1140)" 2016-11-26 00:38:01 +01:00
perl Restore cache.nixos.org as the default substituter 2017-03-21 15:06:46 +01:00
scripts Merge branch 'nix-copy-closure-c++' of https://github.com/shlevy/nix 2017-02-07 20:47:45 +01:00
src Add exec primop behind allow-unsafe-native-code-during-evaluation. 2017-03-30 08:04:21 -04:00
tests Fix tests to reflect the signed-binary-caches default change 2017-03-21 18:06:13 +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 Don't make brotli a hard dependency 2017-03-21 14:47:35 +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 Add support for brotli compression 2017-03-15 16:49:06 +01:00
nix.spec.in RPM build: Use parallel make 2017-02-21 14:52:36 +01:00
README.md Fix minor grammatical nitpick ("it's" vs. "its") in README.md. 2017-03-22 10:11:23 -04:00
release.nix Add support for brotli compression 2017-03-15 16:49:06 +01:00
shell.nix Add support for brotli compression 2017-03-15 16:49:06 +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 its 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.