about summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-04-30T21·22-0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-04-30T21·22-0400
commit59a26360c75f1cf5fe65fce5e3703df0b6645140 (patch)
tree0335e94c4d795df78a62b63f41ca241e9698d344 /doc
parent82ae0e688c21794bea583f9b48bb3639f7e2601a (diff)
Support mandatory system features in the build hook
Mandatory features are features that MUST be present in a derivation's
requiredSystemFeatures attribute.  One application is performance
testing, where we have a dedicated machine to run performance tests
(and nothing else).  Then we would add the label "perf" to the
machine's mandatory features and to the performance testing
derivations.
Diffstat (limited to 'doc')
-rw-r--r--doc/manual/build-farm.xml17
1 files changed, 14 insertions, 3 deletions
diff --git a/doc/manual/build-farm.xml b/doc/manual/build-farm.xml
index f2d4a477e6b9..2e0d86b89f09 100644
--- a/doc/manual/build-farm.xml
+++ b/doc/manual/build-farm.xml
@@ -31,6 +31,7 @@ variable</link>.</para>
 nix@mcflurry.labs.cs.uu.nl  powerpc-darwin  /home/nix/.ssh/id_quarterpounder_auto  2
 nix@scratchy.labs.cs.uu.nl  i686-linux      /home/nix/.ssh/id_scratchy_auto        8 1 kvm
 nix@itchy.labs.cs.uu.nl     i686-linux      /home/nix/.ssh/id_scratchy_auto        8 2
+nix@poochie.labs.cs.uu.nl   i686-linux      /home/nix/.ssh/id_scratchy_auto        8 2 kvm perf
 </programlisting>
 </example>
 
@@ -73,11 +74,12 @@ bits of information:
   the machine.  If there are multiple machines of the right type, Nix
   will prefer the fastest, taking load into account.</para></listitem>
 
-  <listitem><para>A comma-separated list of
-  <emphasis>features</emphasis>.  If a derivation has the
+  <listitem><para>A comma-separated list of <emphasis>supported
+  features</emphasis>.  If a derivation has the
   <varname>requiredSystemFeatures</varname> attribute, then
   <filename>build-remote.pl</filename> will only perform the
-  derivation on a machine that has the specified features.  For instance, the attribute
+  derivation on a machine that has the specified features.  For
+  instance, the attribute
   
 <programlisting>
 requiredSystemFeatures = [ "kvm" ];  
@@ -87,6 +89,15 @@ requiredSystemFeatures = [ "kvm" ];
   <literal>kvm</literal> feature (i.e., <literal>scratchy</literal> in
   the example above).</para></listitem>
 
+  <listitem><para>A comma-separated list of <emphasis>mandatory
+  features</emphasis>.  A machine will only be used to build a
+  derivation if all of the machine’s mandatory features appear in the
+  derivation’s <varname>requiredSystemFeatures</varname> attribute.
+  Thus, in the example, the machine <literal>poochie</literal> will
+  only do derivations that have
+  <varname>requiredSystemFeatures</varname> set to <literal>["kvm"
+  "perf"]</literal> or <literal>["perf"]</literal>.</para></listitem>
+
 </orderedlist>
 
 You should also set up the environment variable