aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
diff options
context:
space:
mode:
authorGergely Risko <errge@nilcons.com>2014-08-27 16:46:02 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-28 18:23:55 +0200
commitfd61069a42289da195532bf68d15dc695cca7236 (patch)
treec0bc88b587aa590d7cdd58146e63af663e1917cf /doc/manual
parent3f0a4bf0e7254edddaa864d23893d98da23c2977 (diff)
Introduce allowedRequisites feature
Diffstat (limited to 'doc/manual')
-rw-r--r--doc/manual/release-notes.xml14
-rw-r--r--doc/manual/writing-nix-expressions.xml19
2 files changed, 33 insertions, 0 deletions
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml
index 426078b82..36e345ecf 100644
--- a/doc/manual/release-notes.xml
+++ b/doc/manual/release-notes.xml
@@ -11,6 +11,20 @@
<para>TODO</para>
+<itemizedlist>
+
+ <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. This is
+ used in NixOS when rebuilding the stdenv on Linux to ensure that the
+ resulting stdenv doesn't have any surprising dependency, e.g. on
+ bootstrapTools.</para></listitem>
+
+</itemizedlist>
+
</section>
diff --git a/doc/manual/writing-nix-expressions.xml b/doc/manual/writing-nix-expressions.xml
index 0470625ff..2c9b4a633 100644
--- a/doc/manual/writing-nix-expressions.xml
+++ b/doc/manual/writing-nix-expressions.xml
@@ -1569,6 +1569,25 @@ allowedReferences = [];
</varlistentry>
+ <varlistentry><term><varname>allowedRequisites</varname></term>
+
+ <listitem><para>This attribute is similar to
+ <varname>allowedReferences</varname>, but it specifies the legal
+ requisites of the whole closure, so all the dependencies
+ recursively. For example,
+
+<programlisting>
+allowedReferences = [ foobar ];
+</programlisting>
+
+ enforces that the output of a derivation cannot have any other
+ runtime dependency than <varname>foobar</varname>, and in addition
+ it enforces that <varname>foobar</varname> itself doesn't
+ introduce any other dependency itself. This is used in NixOS when
+ rebuilding the stdenv on Linux to ensure that the resulting stdenv
+ doesn't have any surprising dependency, e.g. on bootstrapTools.
+
+ </varlistentry>
<varlistentry><term><varname>exportReferencesGraph</varname></term>