aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2015-04-04 21:53:17 -0400
committerShea Levy <shea@shealevy.com>2015-04-12 12:56:38 -0400
commit1e4a4a2e9fc382f47f58b448f3ee034cdd28218a (patch)
treea844db5a4be5a57ac4ed2203c5ba6bb45cbf89a0 /doc
parent4ed2187377bb915c0eac7f93f20afa3d16f79a5d (diff)
Add the pre-build hook.
This hook can be used to set system specific per-derivation build settings that don't fit into the derivation model and are too complex or volatile to be hard-coded into nix. Currently, the pre-build hook can only add chroot dirs/files. The specific use case for this is systems where the operating system ABI is more complex than just the kernel-supported system calls. For example, on OS X there is a set of system-provided frameworks that can reliably be accessed by any program linked to them, no matter the version the program is running on. Unfortunately, those frameworks do not necessarily live in the same locations on each version of OS X, nor do their dependencies, and thus nix needs to know the specific version of OS X currently running in order to make those frameworks available. The pre-build hook is a perfect mechanism for doing just that.
Diffstat (limited to 'doc')
-rw-r--r--doc/manual/command-ref/conf-file.xml33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/manual/command-ref/conf-file.xml b/doc/manual/command-ref/conf-file.xml
index 89b8aac78..329d2e485 100644
--- a/doc/manual/command-ref/conf-file.xml
+++ b/doc/manual/command-ref/conf-file.xml
@@ -562,6 +562,39 @@ flag, e.g. <literal>--option gc-keep-outputs false</literal>.</para>
</varlistentry>
+ <varlistentry xml:id="conf-pre-build-hook"><term><literal>pre-build-hook</literal></term>
+
+ <listitem>
+
+ <para>If set, the path to a program that can set extra
+ derivation-specific settings for this system. This is used for settings
+ that can't be captured by the derivation model itself and are too
+ variable between different versions of the same system to be hard-coded
+ into nix.</para>
+
+ <para>The hook listens on <literal>stdin</literal> for a derivation path.
+ It can then send a series of commands to modify various settings, followed
+ by an empty line to indicate completion. The currently recognized commands
+ are:</para>
+
+ <variablelist>
+ <varlistentry xml:id="extra-chroot-dirs"><term><literal>extra-chroot-dirs</literal></term>
+
+ <listitem>
+
+ <para>Pass a list of files and directories to be included in the
+ chroot for this build. One entry per line, terminated by an empty
+ line.</para>
+
+ </listitem>
+
+ </varlistentry>
+ </variablelist>
+ </listitem>
+
+ </varlistentry>
+
+
</variablelist>
</para>