summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-06-16 12:27:43 +0200
committerFrederik Rietdijk <freddyrietdijk@fridh.nl>2019-06-16 19:49:47 +0200
commit902952d3a3c1f579a6a68da54c4d1403f30ccfdc (patch)
tree0d3d5e9f0b981d75fecba82686d3e84d95c1db00
parentad2a9cdd8f55b5106ddf0d361876870d819d8eb9 (diff)
downloadnixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar.gz
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar.bz2
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar.lz
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar.xz
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.tar.zst
nixpkgs-902952d3a3c1f579a6a68da54c4d1403f30ccfdc.zip
doc: describe pname
This was forgotten when RFC 0035 was implemented.
-rw-r--r--doc/stdenv.xml25
1 files changed, 22 insertions, 3 deletions
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index a14d78afe71..d89c368d284 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";