Release 1.8 (2014-12-14)
-
Breaking change: to address a race condition, the remote build hook mechanism now uses
nix-store --serve
on the remote machine. This requires build slaves to be updated to Nix 1.8. -
Nix now uses HTTPS instead of HTTP to access the default binary cache,
cache.nixos.org
. -
nix-env
selectors are now regular expressions. For instance, you can do$ nix-env -qa '.*zip.*'
to query all packages with a name containing
zip
. -
nix-store --read-log
can now fetch remote build logs. If a build log is not available locally, then ‘nix-store -l’ will now try to download it from the servers listed in the ‘log-servers’ option in nix.conf. For instance, if you have the configuration optionlog-servers = http://hydra.nixos.org/log
then it will try to get logs from
http://hydra.nixos.org/log/base name of the store path
. This allows you to do things like:$ nix-store -l $(which xterm)
and get a log even if
xterm
wasn't built locally. -
New builtin functions:
attrValues
,deepSeq
,fromJSON
,readDir
,seq
. -
nix-instantiate --eval
now has a--json
flag to print the resulting value in JSON format. -
nix-copy-closure
now usesnix-store --serve
on the remote side to send or receive closures. This fixes a race condition betweennix-copy-closure
and the garbage collector. -
Derivations can specify the new special attribute
allowedRequisites
, which has a similar meaning toallowedReferences
. But instead of only enforcing to explicitly specify the immediate references, it requires the derivation to specify all the dependencies recursively (hence the name, requisites) that are used by the resulting output. -
On Mac OS X, Nix now handles case collisions when importing closures from case-sensitive file systems. This is mostly useful for running NixOps on Mac OS X.
-
The Nix daemon has new configuration options
allowed-users
(specifying the users and groups that are allowed to connect to the daemon) andtrusted-users
(specifying the users and groups that can perform privileged operations like specifying untrusted binary caches). -
The configuration option
build-cores
now defaults to the number of available CPU cores. -
Build users are now used by default when Nix is invoked as root. This prevents builds from accidentally running as root.
-
Nix now includes systemd units and Upstart jobs.
-
Speed improvements to
nix-store --optimise
. -
Language change: the
==
operator now ignores string contexts (the “dependencies” of a string). -
Nix now filters out Nix-specific ANSI escape sequences on standard error. They are supposed to be invisible, but some terminals show them anyway.
-
Various commands now automatically pipe their output into the pager as specified by the
PAGER
environment variable. -
Several improvements to reduce memory consumption in the evaluator.
This release has contributions from Adam Szkoda, Aristid Breitkreuz, Bob van der Linden, Charles Strahan, darealshinji, Eelco Dolstra, Gergely Risko, Joel Taylor, Ludovic Courtès, Marko Durkovic, Mikey Ariel, Paul Colomiets, Ricardo M. Correia, Ricky Elrod, Robert Helgesson, Rob Vermaas, Russell O'Connor, Shea Levy, Shell Turner, Sönke Hahn, Steve Purcell, Vladimír Čunát and Wout Mertens.