about summary refs log tree commit diff
path: root/doc/manual
diff options
context:
space:
mode:
authorGergely Risko <errge@nilcons.com>2014-08-27T14·46+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-28T16·23+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 426078b829de..36e345ecf273 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 0470625ff6d3..2c9b4a633271 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>