Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 mkCoqDerivation, 4 coq, 5 stdlib, 6 coq-elpi, 7 version ? null, 8}: 9 10let 11 hb = mkCoqDerivation { 12 pname = "hierarchy-builder"; 13 owner = "math-comp"; 14 inherit version; 15 defaultVersion = 16 let 17 case = case: out: { inherit case out; }; 18 in 19 with lib.versions; 20 lib.switch coq.coq-version [ 21 (case (range "8.20" "8.20") "1.9.1") 22 (case (range "8.19" "8.20") "1.8.0") 23 (case (range "8.18" "8.20") "1.7.1") 24 (case (range "8.16" "8.18") "1.6.0") 25 (case (range "8.15" "8.18") "1.5.0") 26 (case (range "8.15" "8.17") "1.4.0") 27 (case (range "8.13" "8.14") "1.2.0") 28 (case (range "8.12" "8.13") "1.1.0") 29 (case (isEq "8.11") "0.10.0") 30 ] null; 31 release."1.9.1".sha256 = "sha256-AiS0ezMyfIYlXnuNsVLz1GlKQZzJX+ilkrKkbo0GrF0="; 32 release."1.8.1".sha256 = "sha256-Z0WAHDyycqgL+Le/zNfEAoLWzFb7WIL+3G3vEBExlb4="; 33 release."1.8.0".sha256 = "sha256-4s/4ZZKj5tiTtSHGIM8Op/Pak4Vp52WVOpd4l9m19fY="; 34 release."1.7.1".sha256 = "sha256-MCmOzMh/SBTFAoPbbIQ7aqd3hMcSMpAKpiZI7dbRaGs="; 35 release."1.7.0".sha256 = "sha256-WqSeuJhmqicJgXw/xGjGvbRzfyOK7rmkVRb6tPDTAZg="; 36 release."1.6.0".sha256 = "sha256-E8s20veOuK96knVQ7rEDSt8VmbtYfPgItD0dTY/mckg="; 37 release."1.5.0".sha256 = "sha256-Lia3o156Pbe8rDHOA1IniGYsG5/qzZkzDKdHecfmS+c="; 38 release."1.4.0".sha256 = "sha256-tOed9UU3kMw6KWHJ5LVLUFEmzHx1ImutXQvZ0ldW9rw="; 39 release."1.3.0".sha256 = "17k7rlxdx43qda6i1yafpgc64na8br285cb0mbxy5wryafcdrkrc"; 40 release."1.2.1".sha256 = "sha256-pQYZJ34YzvdlRSGLwsrYgPdz3p/l5f+KhJjkYT08Mj0="; 41 release."1.2.0".sha256 = "0sk01rvvk652d86aibc8rik2m8iz7jn6mw9hh6xkbxlsvh50719d"; 42 release."1.1.0".sha256 = "sha256-spno5ty4kU4WWiOfzoqbXF8lWlNSlySWcRReR3zE/4Q="; 43 release."1.0.0".sha256 = "0yykygs0z6fby6vkiaiv3azy1i9yx4rqg8xdlgkwnf2284hffzpp"; 44 release."0.10.0".sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h"; 45 releaseRev = v: "v${v}"; 46 47 propagatedBuildInputs = [ coq-elpi ]; 48 49 mlPlugin = true; 50 51 meta = with lib; { 52 description = "High level commands to declare a hierarchy based on packed classes"; 53 maintainers = with maintainers; [ 54 cohencyril 55 siraben 56 ]; 57 license = licenses.mit; 58 }; 59 }; 60 hb2 = hb.overrideAttrs ( 61 o: 62 lib.optionalAttrs (lib.versions.isGe "1.2.0" o.version || o.version == "dev") { 63 buildPhase = "make build"; 64 } 65 // ( 66 if lib.versions.isGe "1.1.0" o.version || o.version == "dev" then 67 { installFlags = [ "DESTDIR=$(out)" ] ++ o.installFlags; } 68 else 69 { installFlags = [ "VFILES=structures.v" ] ++ o.installFlags; } 70 ) 71 // lib.optionalAttrs (o.version != null && o.version == "1.8.1") { 72 propagatedBuildInputs = o.propagatedBuildInputs ++ [ stdlib ]; 73 } 74 ); 75in 76# this is just a wrapper for rocqPackages.hierarchy-builder for Rocq >= 9.0 77if coq.rocqPackages ? hierarchy-builder then 78 coq.rocqPackages.hierarchy-builder.override { 79 inherit version; 80 inherit (coq.rocqPackages) rocq-core; 81 rocq-elpi = coq-elpi; 82 } 83else 84 hb2