aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual')
-rw-r--r--doc/manual/command-ref/nix-channel.xml23
-rw-r--r--doc/manual/command-ref/nix-store.xml96
-rw-r--r--doc/manual/expressions/builtins.xml15
-rw-r--r--doc/manual/expressions/language-constructs.xml22
-rw-r--r--doc/manual/installation/prerequisites-source.xml6
-rw-r--r--doc/manual/packages/s3-substituter.xml4
-rw-r--r--doc/manual/release-notes/release-notes.xml1
-rw-r--r--doc/manual/release-notes/rl-2.3.xml22
8 files changed, 166 insertions, 23 deletions
diff --git a/doc/manual/command-ref/nix-channel.xml b/doc/manual/command-ref/nix-channel.xml
index ff4021a76..5a2866e6b 100644
--- a/doc/manual/command-ref/nix-channel.xml
+++ b/doc/manual/command-ref/nix-channel.xml
@@ -31,12 +31,11 @@
<refsection><title>Description</title>
-<para>A Nix channel is a mechanism that allows you to automatically stay
-up-to-date with a set of pre-built Nix expressions. A Nix channel is
-just a URL that points to a place containing both a set of Nix
-expressions and a pointer to a binary cache. <phrase
-condition="manual">See also <xref linkend="sec-channels"
-/>.</phrase></para>
+<para>A Nix channel is a mechanism that allows you to automatically
+stay up-to-date with a set of pre-built Nix expressions. A Nix
+channel is just a URL that points to a place containing a set of Nix
+expressions. <phrase condition="manual">See also <xref
+linkend="sec-channels" />.</phrase></para>
<para>This command has the following operations:
@@ -172,18 +171,6 @@ following files:</para>
</varlistentry>
- <varlistentry><term><filename>binary-cache-url</filename></term>
-
- <listitem><para>A file containing the URL to a binary cache (such
- as <uri>https://cache.nixos.org</uri>). Nix will automatically
- check this cache for pre-built binaries, if the user has
- sufficient rights to add binary caches. For instance, in a
- multi-user Nix setup, the binary caches provided by the channels
- of the root user are used automatically, but caches corresponding
- to the channels of non-root users are ignored.</para></listitem>
-
- </varlistentry>
-
</variablelist>
</refsection>
diff --git a/doc/manual/command-ref/nix-store.xml b/doc/manual/command-ref/nix-store.xml
index d73cb92ee..113a3c2e4 100644
--- a/doc/manual/command-ref/nix-store.xml
+++ b/doc/manual/command-ref/nix-store.xml
@@ -215,6 +215,48 @@ printed.)</para>
</variablelist>
+<para>Special exit codes:</para>
+
+<variablelist>
+
+ <varlistentry><term><literal>100</literal></term>
+ <listitem><para>Generic build failure, the builder process
+ returned with a non-zero exit code.</para></listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>101</literal></term>
+ <listitem><para>Build timeout, the build was aborted because it
+ did not complete within the specified <link
+ linkend='conf-timeout'><literal>timeout</literal></link>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>102</literal></term>
+ <listitem><para>Hash mismatch, the build output was rejected
+ because it does not match the specified <link
+ linkend="fixed-output-drvs"><varname>outputHash</varname></link>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>104</literal></term>
+ <listitem><para>Not deterministic, the build succeeded in check
+ mode but the resulting output is not binary reproducable.</para>
+ </listitem>
+ </varlistentry>
+
+</variablelist>
+
+<para>With the <option>--keep-going</option> flag it's possible for
+multiple failures to occur, in this case the 1xx status codes are or combined
+using binary or. <screen>
+1100100
+ ^^^^
+ |||`- timeout
+ ||`-- output hash mismatch
+ |`--- build failure
+ `---- not deterministic
+</screen></para>
+
</refsection>
@@ -883,6 +925,60 @@ $ nix-store --add ./foo.c
</refsection>
+<!--######################################################################-->
+
+<refsection><title>Operation <option>--add-fixed</option></title>
+
+<refsection><title>Synopsis</title>
+
+<cmdsynopsis>
+ <command>nix-store</command>
+ <arg><option>--recursive</option></arg>
+ <arg choice='plain'><option>--add-fixed</option></arg>
+ <arg choice='plain'><replaceable>algorithm</replaceable></arg>
+ <arg choice='plain' rep='repeat'><replaceable>paths</replaceable></arg>
+</cmdsynopsis>
+
+</refsection>
+
+<refsection><title>Description</title>
+
+<para>The operation <option>--add-fixed</option> adds the specified paths to
+the Nix store. Unlike <option>--add</option> paths are registered using the
+specified hashing algorithm, resulting in the same output path as a fixed output
+derivation. This can be used for sources that are not available from a public
+url or broke since the download expression was written.
+</para>
+
+<para>This operation has the following options:
+
+<variablelist>
+
+ <varlistentry><term><option>--recursive</option></term>
+
+ <listitem><para>
+ Use recursive instead of flat hashing mode, used when adding directories
+ to the store.
+ </para></listitem>
+
+ </varlistentry>
+
+</variablelist>
+
+</para>
+
+</refsection>
+
+<refsection><title>Example</title>
+
+<screen>
+$ nix-store --add-fixed sha256 ./hello-2.10.tar.gz
+/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz</screen>
+
+</refsection>
+
+</refsection>
+
<!--######################################################################-->
diff --git a/doc/manual/expressions/builtins.xml b/doc/manual/expressions/builtins.xml
index deffcb594..4c1d618e9 100644
--- a/doc/manual/expressions/builtins.xml
+++ b/doc/manual/expressions/builtins.xml
@@ -425,6 +425,13 @@ stdenv.mkDerivation { … }
This is often a branch or tag name. Defaults to
<literal>HEAD</literal>.
</para>
+
+ <para>
+ By default, the <varname>ref</varname> value is prefixed
+ with <literal>refs/heads/</literal>. As of Nix 2.3.0
+ Nix will not prefix <literal>refs/heads/</literal> if
+ <varname>ref</varname> starts with <literal>refs/</literal>.
+ </para>
</listitem>
</varlistentry>
</variablelist>
@@ -439,6 +446,14 @@ stdenv.mkDerivation { … }
</example>
<example>
+ <title>Fetching an arbitrary ref</title>
+ <programlisting>builtins.fetchGit {
+ url = "https://gitub.com/NixOS/nix.git";
+ ref = "refs/heads/0.5-release";
+}</programlisting>
+ </example>
+
+ <example>
<title>Fetching a repository's specific commit on an arbitrary branch</title>
<para>
If the revision you're looking for is in the default branch
diff --git a/doc/manual/expressions/language-constructs.xml b/doc/manual/expressions/language-constructs.xml
index f961ed921..0d0cbbe15 100644
--- a/doc/manual/expressions/language-constructs.xml
+++ b/doc/manual/expressions/language-constructs.xml
@@ -43,7 +43,7 @@ encountered</quote>).</para></footnote>.</para>
<simplesect xml:id="sect-let-expressions"><title>Let-expressions</title>
-<para>A let-expression allows you define local variables for an
+<para>A let-expression allows you to define local variables for an
expression. For instance,
<programlisting>
@@ -217,7 +217,25 @@ but can also be written as:
ellipsis(<literal>...</literal>) as you can access attribute names as
<literal>a</literal>, using <literal>args.a</literal>, which was given as an
additional attribute to the function.
- </para></listitem>
+ </para>
+
+ <warning>
+ <para>
+ The <literal>args@</literal> expression is bound to the argument passed to the function which
+ means that attributes with defaults that aren't explicitly specified in the function call
+ won't cause an evaluation error, but won't exist in <literal>args</literal>.
+ </para>
+ <para>
+ For instance
+<programlisting>
+let
+ function = args@{ a ? 23, ... }: args;
+in
+ function {}
+</programlisting>
+ will evaluate to an empty attribute set.
+ </para>
+ </warning></listitem>
</itemizedlist>
diff --git a/doc/manual/installation/prerequisites-source.xml b/doc/manual/installation/prerequisites-source.xml
index e87d0de21..e7bdcf966 100644
--- a/doc/manual/installation/prerequisites-source.xml
+++ b/doc/manual/installation/prerequisites-source.xml
@@ -13,7 +13,7 @@
<listitem><para>Bash Shell. The <literal>./configure</literal> script
relies on bashisms, so Bash is required.</para></listitem>
- <listitem><para>A version of GCC or Clang that supports C++14.</para></listitem>
+ <listitem><para>A version of GCC or Clang that supports C++17.</para></listitem>
<listitem><para><command>pkg-config</command> to locate
dependencies. If your distribution does not provide it, you can get
@@ -62,6 +62,10 @@
1.66.0 or higher. It can be obtained from the official web site
<link xlink:href="https://www.boost.org/" />.</para></listitem>
+ <listitem><para>The <literal>editline</literal> library of version
+ 1.14.0 or higher. It can be obtained from the its repository
+ <link xlink:href="https://github.com/troglobit/editline" />.</para></listitem>
+
<listitem><para>The <command>xmllint</command> and
<command>xsltproc</command> programs to build this manual and the
man-pages. These are part of the <literal>libxml2</literal> and
diff --git a/doc/manual/packages/s3-substituter.xml b/doc/manual/packages/s3-substituter.xml
index e7589ffdb..1722090ef 100644
--- a/doc/manual/packages/s3-substituter.xml
+++ b/doc/manual/packages/s3-substituter.xml
@@ -113,7 +113,7 @@ the S3 URL:</para>
exactly <uri>s3://example-nix-cache</uri>.</para>
<para>Nix will use the <link
- xlink:href="https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default.">default
+ xlink:href="https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html">default
credential provider chain</link> for authenticating requests to
Amazon S3.</para>
@@ -138,7 +138,7 @@ the S3 URL:</para>
be <uri>s3://example-nix-cache</uri>.</para>
<para>Nix will use the <link
- xlink:href="https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default.">default
+ xlink:href="https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html">default
credential provider chain</link> for authenticating requests to
Amazon S3.</para>
diff --git a/doc/manual/release-notes/release-notes.xml b/doc/manual/release-notes/release-notes.xml
index e8ff586fa..2655d68e3 100644
--- a/doc/manual/release-notes/release-notes.xml
+++ b/doc/manual/release-notes/release-notes.xml
@@ -12,6 +12,7 @@
</partintro>
-->
+<xi:include href="rl-2.3.xml" />
<xi:include href="rl-2.2.xml" />
<xi:include href="rl-2.1.xml" />
<xi:include href="rl-2.0.xml" />
diff --git a/doc/manual/release-notes/rl-2.3.xml b/doc/manual/release-notes/rl-2.3.xml
new file mode 100644
index 000000000..428213b36
--- /dev/null
+++ b/doc/manual/release-notes/rl-2.3.xml
@@ -0,0 +1,22 @@
+<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-2.3">
+
+<title>Release 2.3 (????-??-??)</title>
+
+<para>This release contains the following changes:</para>
+
+<itemizedlist>
+
+ <listitem>
+ <para><function>builtins.fetchGit</function>'s <varname>ref</varname>
+ argument now allows specifying an absolute remote ref.
+ Nix will automatically prefix <varname>ref</varname> with
+ <literal>refs/heads</literal> only if <varname>ref</varname> doesn't
+ already begin with <literal>refs/</literal>.
+ </para>
+ </listitem>
+</itemizedlist>
+</section>