summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/stdenv.xml25
1 files changed, 22 insertions, 3 deletions
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index a14d78afe71a..d89c368d284b 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -31,9 +31,28 @@ stdenv.mkDerivation {
separate Nix expression from <filename>pkgs/all-packages.nix</filename>, you
need to pass it as a function argument.) Specifying a
<varname>name</varname> and a <varname>src</varname> is the absolute minimum
- you need to do. Many packages have dependencies that are not provided in the
- standard environment. It’s usually sufficient to specify those
- dependencies in the <varname>buildInputs</varname> attribute:
+ Nix requires. For convenience, you can also use <varname>pname</varname> and
+ <varname>version</varname> attributes and <literal>mkDerivation</literal>
+ will automatically set <varname>name</varname> to
+ <literal>"${pname}-${version}"</literal> by default. Since
+ <link xlink:href="https://github.com/NixOS/rfcs/pull/35">RFC 0035</link>,
+ this is preferred for packages in Nixpkgs, as it allows us to reuse the
+ version easily:
+<programlisting>
+stdenv.mkDerivation rec {
+ name = "libfoo";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "http://example.org/libfoo-source-${version}.tar.bz2";
+ sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m";
+ };
+}</programlisting>
+ </para>
+
+ <para>
+ Many packages have dependencies that are not provided in the standard
+ environment. It’s usually sufficient to specify those dependencies in the
+ <varname>buildInputs</varname> attribute:
<programlisting>
stdenv.mkDerivation {
name = "libfoo-1.2.3";