summaryrefslogtreecommitdiffstats
path: root/doc/stdenv.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/stdenv.xml')
-rw-r--r--doc/stdenv.xml41
1 files changed, 22 insertions, 19 deletions
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index a3990dec052f..74f815fc1d79 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -222,9 +222,10 @@ genericBuild
</footnote>
But even if one is not cross compiling, the platforms imply whether or not
the dependency is needed at run-time or build-time, a concept that makes
- perfect sense outside of cross compilation. For now, the run-time/build-time
- distinction is just a hint for mental clarity, but in the future it perhaps
- could be enforced.
+ perfect sense outside of cross compilation. By default, the
+ run-time/build-time distinction is just a hint for mental clarity, but with
+ <varname>strictDeps</varname> set it is mostly enforced even in the native
+ case.
</para>
<para>
@@ -348,7 +349,10 @@ let f(h, h + 1, i) = i + h
<para>
Overall, the unifying theme here is that propagation shouldn't be
introducing transitive dependencies involving platforms the depending
- package is unaware of. The offset bounds checking and definition of
+ package is unaware of. [One can imagine the dependending package asking for
+ dependencies with the platforms it knows about; other platforms it doesn't
+ know how to ask for. The platform description in that scenario is a kind of
+ unforagable capability.] The offset bounds checking and definition of
<function>mapOffset</function> together ensure that this is the case.
Discovering a new offset is discovering a new platform, and since those
platforms weren't in the derivation "spec" of the needing package, they
@@ -2633,21 +2637,20 @@ addEnvHooks "$hostOffset" myBashFunction
happens. It prevents nix from cleaning up the build environment
immediately and allows the user to attach to a build environment using
the <command>cntr</command> command. Upon build error it will print
- instructions on how to use <command>cntr</command>, which can be used
- to enter the environment for debugging. Installing cntr and
- running the command will provide shell access to the build sandbox of
- failed build. At <filename>/var/lib/cntr</filename> the sandboxed
- filesystem is mounted. All commands and files of the system are still
- accessible within the shell. To execute commands from the sandbox use
- the cntr exec subcommand. Note that <command>cntr</command> also needs
- to be executed on the machine that is doing the build, which might not
- be the case when remote builders are enabled. <command>cntr</command> is
- only supported on Linux-based platforms. To use it first add
- <literal>cntr</literal> to your
- <literal>environment.systemPackages</literal> on NixOS or alternatively
- to the root user on non-NixOS systems. Then in the package that is
- supposed to be inspected, add <literal>breakpointHook</literal> to
- <literal>nativeBuildInputs</literal>.
+ instructions on how to use <command>cntr</command>, which can be used to
+ enter the environment for debugging. Installing cntr and running the
+ command will provide shell access to the build sandbox of failed build.
+ At <filename>/var/lib/cntr</filename> the sandboxed filesystem is
+ mounted. All commands and files of the system are still accessible
+ within the shell. To execute commands from the sandbox use the cntr exec
+ subcommand. Note that <command>cntr</command> also needs to be executed
+ on the machine that is doing the build, which might not be the case when
+ remote builders are enabled. <command>cntr</command> is only supported
+ on Linux-based platforms. To use it first add <literal>cntr</literal> to
+ your <literal>environment.systemPackages</literal> on NixOS or
+ alternatively to the root user on non-NixOS systems. Then in the package
+ that is supposed to be inspected, add <literal>breakpointHook</literal>
+ to <literal>nativeBuildInputs</literal>.
<programlisting>
nativeBuildInputs = [ breakpointHook ];
</programlisting>