doc/stdenv: Document autoPatchelfHook changes

First of all, this makes the existing documentation a bit more clear on
what autoPatchelfHook is all about, because after discussing with
@svanderburg - who wrote a similar implementation - the rationale about
autoPatchelfHook wasn't very clear in the documentation.

I also added the recent changes around being able to use autoPatchelf
manually and the new --no-recurse flag.

Signed-off-by: aszlig <aszlig@nix.build>
This commit is contained in:
aszlig 2018-11-19 23:33:44 +01:00
parent 3ca35ce0b2
commit 503b41b9b2
No known key found for this signature in database
GPG Key ID: 684089CE67EBB691

View File

@ -2421,12 +2421,31 @@ addEnvHooks "$hostOffset" myBashFunction
<para> <para>
This is a special setup hook which helps in packaging proprietary This is a special setup hook which helps in packaging proprietary
software in that it automatically tries to find missing shared library software in that it automatically tries to find missing shared library
dependencies of ELF files. All packages within the dependencies of ELF files based on the given
<envar>runtimeDependencies</envar> environment variable are <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>.
unconditionally added to executables, which is useful for programs that </para>
use <citerefentry> <para>
<refentrytitle>dlopen</refentrytitle> You can also specify a <envar>runtimeDependencies</envar> environment
<manvolnum>3</manvolnum> </citerefentry> to load libraries at runtime. variable which lists dependencies that are unconditionally added to all
executables.
</para>
<para>
This is useful for programs that use <citerefentry>
<refentrytitle>dlopen</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry> to load libraries at runtime.
</para>
<para>
In certain situations you may want to run the main command
(<command>autoPatchelf</command>) of the setup hook on a file or a set
of directories instead of unconditionally patching all outputs. This
can be done by setting the <envar>dontAutoPatchelf</envar> environment
variable to a non-empty value.
</para>
<para>
The <command>autoPatchelf</command> command also recognizes a
<parameter class="command">--no-recurse</parameter> command line flag,
which prevents it from recursing into subdirectories.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>