* Moved some stuff to the Nixpkgs manual.
* Updated the release notes.
This commit is contained in:
		
							parent
							
								
									98b07466fb
								
							
						
					
					
						commit
						72f3ea7358
					
				
					 2 changed files with 22 additions and 162 deletions
				
			
		| 
						 | 
					@ -14,6 +14,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <listitem><para>TODO: Berkeley DB no longer needed.</para></listitem>
 | 
					  <listitem><para>TODO: Berkeley DB no longer needed.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para>New substituter to copy from remotely mounted Nix
 | 
				
			||||||
 | 
					  stores (TODO: document).</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <listitem><para><command>nix-store --dump-db / --load-db</command>.</para></listitem>
 | 
					  <listitem><para><command>nix-store --dump-db / --load-db</command>.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <listitem><para>New primops:
 | 
					  <listitem><para>New primops:
 | 
				
			||||||
| 
						 | 
					@ -25,6 +28,25 @@
 | 
				
			||||||
  <varname>builtins.genericClosure</varname>.
 | 
					  <varname>builtins.genericClosure</varname>.
 | 
				
			||||||
  </para></listitem>
 | 
					  </para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para>GC options: <option>--max-freed</option>,
 | 
				
			||||||
 | 
					  <option>--max-links</option>.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para>TODO: Optimistic profile locking.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para>The option <option>--dry-run</option> is now
 | 
				
			||||||
 | 
					  supported by <command>nix-store -r</command> and
 | 
				
			||||||
 | 
					  <command>nix-build</command>.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para>The information previously shown by
 | 
				
			||||||
 | 
					  <option>--dry-run</option> (i.e., which derivations will be built
 | 
				
			||||||
 | 
					  and which paths will be substituted) is now always shown by
 | 
				
			||||||
 | 
					  <command>nix-env</command>, <command>nix-store -r</command> and
 | 
				
			||||||
 | 
					  <command>nix-build</command>.  The total download size of
 | 
				
			||||||
 | 
					  substitutable paths is now also shown.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <listitem><para><command>nix-prefetch-url</command> now supports
 | 
				
			||||||
 | 
					  <literal>mirror://</literal> URLs.</para></listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</itemizedlist>
 | 
					</itemizedlist>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1644,59 +1644,6 @@ impureEnvVars = ["http_proxy" "https_proxy" <replaceable>...</replaceable>];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<section xml:id='sec-standard-environment'><title>The standard environment</title>
 | 
					<section xml:id='sec-standard-environment'><title>The standard environment</title>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<para>The standard build environment in the Nix Packages collection
 | 
					 | 
				
			||||||
provides a basic environment for building Unix packages.  It consists
 | 
					 | 
				
			||||||
of the following packages:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<itemizedlist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>The GNU C Compiler, configured with C and C++
 | 
					 | 
				
			||||||
  support.  On Linux, the compiler has been patched to provide greater
 | 
					 | 
				
			||||||
  <quote>purity</quote> assurance.  For instance, the compiler doesn't
 | 
					 | 
				
			||||||
  search in locations such as <filename>/usr/include</filename>.  In
 | 
					 | 
				
			||||||
  fact, attempts to add such directories through the
 | 
					 | 
				
			||||||
  <option>-I</option> flag are filtered out.  Likewise, the linker
 | 
					 | 
				
			||||||
  (from GNU binutils) doesn't search in standard locations such as
 | 
					 | 
				
			||||||
  <filename>/usr/lib</filename>.  Programs built on Linux are linked
 | 
					 | 
				
			||||||
  against a GNU C Library that likewise doesn't search in the default
 | 
					 | 
				
			||||||
  system locations.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU coreutils (contains a few dozen standard Unix
 | 
					 | 
				
			||||||
  commands).</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU findutils (contains
 | 
					 | 
				
			||||||
  <command>find</command>).</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU diffutils (contains <command>diff</command>,
 | 
					 | 
				
			||||||
  <command>cmp</command>).</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU <command>sed</command>.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU <command>grep</command>.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU <command>awk</command>.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU <command>tar</command>.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para><command>gzip</command> and
 | 
					 | 
				
			||||||
  <command>bzip2</command>.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>GNU Make.  It has been patched to provide
 | 
					 | 
				
			||||||
  <quote>nested</quote> output that can be fed into the
 | 
					 | 
				
			||||||
  <command>nix-log2xml</command> command and
 | 
					 | 
				
			||||||
  <command>log2html</command> stylesheet to create a structured,
 | 
					 | 
				
			||||||
  readable output of the build steps performed by
 | 
					 | 
				
			||||||
  Make.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>Bash.  This is the shell used for all builders in
 | 
					 | 
				
			||||||
  the Nix Packages collection.  Not using <command>/bin/sh</command>
 | 
					 | 
				
			||||||
  removes a large source of portability problems.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para>Patch.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</itemizedlist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</para>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<para>The standard environment is used by passing it as an input
 | 
					<para>The standard environment is used by passing it as an input
 | 
				
			||||||
called <envar>stdenv</envar> to the derivation, and then doing
 | 
					called <envar>stdenv</envar> to the derivation, and then doing
 | 
				
			||||||
| 
						 | 
					@ -1765,115 +1712,6 @@ myPostInstall() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</para>
 | 
					</para>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<para>The generic builder has a number of <emphasis>phases</emphasis>,
 | 
					 | 
				
			||||||
each of which can be override in its entirety by setting the indicated
 | 
					 | 
				
			||||||
variable.  The phases are:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<itemizedlist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para><function>unpackPhase</function> unpacks the source files
 | 
					 | 
				
			||||||
    listed in the <envar>src</envar> environment variable to the
 | 
					 | 
				
			||||||
    current directory.  It supports <filename>tar</filename> files,
 | 
					 | 
				
			||||||
    optionally compressed with <command>gzip</command> or
 | 
					 | 
				
			||||||
    <command>bzip2</command>; Zip files (but note that the
 | 
					 | 
				
			||||||
    <command>unzip</command> command is not a part of the standard
 | 
					 | 
				
			||||||
    environment; you should add it as a build input yourself); and
 | 
					 | 
				
			||||||
    unpacked source trees (i.e., directories; they are copied
 | 
					 | 
				
			||||||
    verbatim).  You can add support for other file types by setting
 | 
					 | 
				
			||||||
    the <varname>findUnpacker</varname> hook.  This hook should set
 | 
					 | 
				
			||||||
    the variable <varname>unpackCmd</varname> to contain the command
 | 
					 | 
				
			||||||
    to be executed to unpack the file.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>After unpacking all source files,
 | 
					 | 
				
			||||||
    <function>unpackPhase</function> changes the current directory to
 | 
					 | 
				
			||||||
    the directory created by unpacking the sources.  If there are
 | 
					 | 
				
			||||||
    multiple source directories, you should set
 | 
					 | 
				
			||||||
    <varname>sourceRoot</varname> to the name of the intended
 | 
					 | 
				
			||||||
    directory.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>It also calls the hook <varname>postUnpack</varname> after
 | 
					 | 
				
			||||||
    unpacking.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  </listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para><function>patchPhase</function> calls the
 | 
					 | 
				
			||||||
  <command>patch</command> command with the <option>-p1</option>
 | 
					 | 
				
			||||||
  option for each patch file listed in the <envar>patches</envar>
 | 
					 | 
				
			||||||
  variable.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para><function>configurePhase</function> runs the script called
 | 
					 | 
				
			||||||
    <filename>configure</filename> in the current directory with a
 | 
					 | 
				
			||||||
    <option>--prefix</option> set to the output path.  You can add
 | 
					 | 
				
			||||||
    additional flags through the <varname>configureFlags</varname>
 | 
					 | 
				
			||||||
    variable.  If <filename>configure</filename> does not exist,
 | 
					 | 
				
			||||||
    nothing happens.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>Before and after running <filename>configure</filename>, the
 | 
					 | 
				
			||||||
    hooks <varname>preConfigure</varname> and
 | 
					 | 
				
			||||||
    <varname>postConfigure</varname> are called, respectively.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  </listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para><function>buildPhase</function> calls
 | 
					 | 
				
			||||||
    <command>make</command>.  You can set flags for
 | 
					 | 
				
			||||||
    <command>make</command> through the <varname>makeFlags</varname>
 | 
					 | 
				
			||||||
    variable.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>Before and after running <command>make</command>, the hooks
 | 
					 | 
				
			||||||
    <varname>preBuild</varname> and <varname>postBuild</varname> are
 | 
					 | 
				
			||||||
    called, respectively.</para>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  </listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem><para><function>checkPhase</function> calls <command>make
 | 
					 | 
				
			||||||
  check</command>, but only if the <varname>doCheck</varname> variable
 | 
					 | 
				
			||||||
  is set to <literal>1</literal>.  Additional flags can be set through
 | 
					 | 
				
			||||||
  the <varname>checkFlags</varname> variable.</para></listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para><function>installPhase</function> calls <command>make
 | 
					 | 
				
			||||||
    install</command>.  Additional flags can be set through the
 | 
					 | 
				
			||||||
    <varname>installFlags</varname> variable.  It also strips any
 | 
					 | 
				
			||||||
    static libraries in the output path of debug information unless
 | 
					 | 
				
			||||||
    <varname>dontStrip</varname> is set to
 | 
					 | 
				
			||||||
    <literal>1</literal>.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>Before and after running <command>make install</command>,
 | 
					 | 
				
			||||||
    the hooks <varname>preInstall</varname> and
 | 
					 | 
				
			||||||
    <varname>postInstall</varname> are called, respectively.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  </listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para><function>distPhase</function> calls <command>make
 | 
					 | 
				
			||||||
    dist</command>, but only if the <varname>doDist</varname> variable
 | 
					 | 
				
			||||||
    is set to <literal>1</literal>.  Additional flags can be set
 | 
					 | 
				
			||||||
    through the <varname>distFlags</varname> variable.  The resulting
 | 
					 | 
				
			||||||
    tarball is copied to the <filename>/tarballs</filename>
 | 
					 | 
				
			||||||
    subdirectory of the output path.</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <para>Before and after running <command>make dist</command>, the
 | 
					 | 
				
			||||||
    hooks <varname>preDist</varname> and <varname>postDist</varname>
 | 
					 | 
				
			||||||
    are called, respectively.</para>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  </listitem>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</itemizedlist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</para>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<para>You can change the order in which phases are executed, or add
 | 
					 | 
				
			||||||
new phases, by setting the <varname>phases</varname> variable.  The
 | 
					 | 
				
			||||||
default is <literal>patchPhase configurePhase buildPhase checkPhase
 | 
					 | 
				
			||||||
installPhase distPhase</literal>.</para>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue