nix/doc/manual/release-notes/rl-1.8.xml

117 lines
4.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="ssec-relnotes-1.8">
<title>Release 1.8 (December 9, 2014)</title>
<itemizedlist>
<listitem><para>Breaking change: to address a race condition, the
remote build hook mechanism now uses <command>nix-store
--serve</command> on the remote machine. This requires build slaves
to be updated to Nix 1.8.</para></listitem>
<listitem><para>Nix now uses HTTPS instead of HTTP to access the
default binary cache,
<literal>cache.nixos.org</literal>.</para></listitem>
<listitem><para><command>nix-env</command> selectors are now regular
expressions. For instance, you can do
<screen>
$ nix-env -qa '.*zip.*'
</screen>
to query all packages with a name containing
<literal>zip</literal>.</para></listitem>
<listitem><para><command>nix-store --read-log</command> 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 option
<programlisting>
log-servers = http://hydra.nixos.org/log
</programlisting>
then it will try to get logs from
<literal>http://hydra.nixos.org/log/<replaceable>base name of the
store path</replaceable></literal>. This allows you to do things like:
<screen>
$ nix-store -l $(which xterm)
</screen>
and get a log even if <command>xterm</command> wasn't built
locally.</para></listitem>
<listitem><para>New builtin functions:
<function>attrValues</function>, <function>deepSeq</function>,
<function>fromJSON</function>, <function>readDir</function>,
<function>seq</function>.</para></listitem>
<listitem><para><command>nix-instantiate --eval</command> now has a
<option>--json</option> flag to print the resulting value in JSON
format.</para></listitem>
<listitem><para><command>nix-copy-closure</command> now uses
<command>nix-store --serve</command> on the remote side to send or
receive closures. This fixes a race condition between
<command>nix-copy-closureE</command> and the garbage
collector.</para></listitem>
<listitem><para>Derivations can specify the new special attribute
<varname>allowedRequisites</varname>, which has a similar meaning to
<varname>allowedReferences</varname>. 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.</para></listitem>
<listitem><para>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.</para></listitem>
<listitem><para>The Nix daemon has new configuration options
<option>allowed-users</option> (specifying the users and groups that
are allowed to connect to the daemon) and
<option>trusted-users</option> (specifying the users and groups that
can perform privileged operations like specifying untrusted binary
caches).</para></listitem>
<listitem><para>The configuration option
<option>build-max-jobs</option> now defaults to the number of
available CPU cores.</para></listitem>
<listitem><para>Build users are now used by default when Nix is
invoked as root. This prevents builds from accidentally running as
root.</para></listitem>
<listitem><para>Nix now includes systemd units and Upstart
jobs.</para></listitem>
<listitem><para>Speed improvements to <command>nix-store
--optimise</command>.</para></listitem>
<listitem><para>Language change: the <literal>==</literal> operator
now ignores string contexts (the “dependencies” of a
string).</para></listitem>
<listitem><para>Nix now filters out Nix-specific ANSI escape
sequences on standard error. They are supposed to be invisible, but
some terminals show them anyway.</para></listitem>
<listitem><para>Various commands now automatically pipe their output
into the pager as specified by the <envar>PAGER</envar> environment
variable.</para></listitem>
<listitem><para>Several improvements to reduce memory consumption in
the evaluator.</para></listitem>
</itemizedlist>
</section>