Derivations

Beispiel: curl

Das folgende Listing zeigt eine vereinfachte Version einer Derivation für curl, wie sie sich in den Nixpgks findet:

{ lib, fetchurl, openssl, zlib }:

with lib;

stdenv.mkDerivation rec {
  name = "curl-7.80.0";
  version = "7.80.0";

  src = fetchurl {
    url = "https://curl.se/download/curl-${version}.tar.gz";
    sha256 = "...";  # Hash of the source archive
  };

  nativeBuildInputs = [ makeWrapper ];

  buildInputs = [ openssl zlib ];

  meta = with stdenv.lib; {
    description = "cURL is a command-line tool for transferring data with URLs.";
    license = licenses.mit;
  };
}

Es handelt sich um eine Funktion, die Parameter durch ein Attribute Set definiert. Der Hauptteil ist ein Funktionsaufruf von stdenv.mkDerivation, die eine Derivation auf der Grundlage einer Reihe von Attributen berechnet.