2 KiB
Release X.Y (202?-??-??)
-
<nix/fetchurl.nix>
now accepts an additional argumentimpure
which defaults tofalse
. If it is set totrue
, thehash
andsha256
arguments will be ignored and the resulting derivation will have__impure
set totrue
, making it an impure derivation. -
If
builtins.readFile
is called on a file with context, then only the parts of that context that appear in the content of the file are retained. This avoids a lot of spurious errors where some benign strings end-up having a context just because they are read from a store path (#7260). -
Nix can now automatically pick UIDs for builds, removing the need to create
nixbld*
user accounts. These UIDs are allocated starting at 872415232 (0x34000000) on Linux and 56930 on macOS.This is an experimental feature. To enable it, add the following to
nix.conf
:extra-experimental-features = auto-allocate-uids auto-allocate-uids = true
-
On Linux, Nix can now run builds in a user namespace where the build runs as root (UID 0) and has 65,536 UIDs available. This is primarily useful for running containers such as
systemd-nspawn
inside a Nix build. For an example, see67bcb99700/tests/systemd-nspawn.nix
.A build can enable this by requiring the
uid-range
system feature, i.e. by setting the derivation attributerequiredSystemFeatures = [ "uid-range" ];
The
uid-range
system feature requires theauto-allocate-uids
setting to be enabled (see above). -
On Linux, Nix has experimental support for running builds inside a cgroup. It can be enabled by adding
extra-experimental-features = cgroups use-cgroups = true
to
nix.conf
. Cgroups are required for derivations that require theuid-range
system feature. -
nix build --json
now prints some statistics about top-level derivations, such as CPU statistics when cgroups are enabled.