nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 mkCoqDerivation,
4 autoreconfHook,
5 coq,
6 version ? null,
7}:
8
9let
10 hasWarning = lib.versionAtLeast coq.ocamlPackages.ocaml.version "4.08";
11in
12
13(mkCoqDerivation {
14 pname = "dpdgraph";
15 repo = "coq-dpdgraph";
16 inherit version;
17 defaultVersion =
18 let
19 case = case: out: { inherit case out; };
20 in
21 lib.switch coq.coq-version [
22 (case "9.1" "1.0+9.1")
23 (case "9.0" "1.0+9.0")
24 (case "8.20" "1.0+8.20")
25 (case "8.19" "1.0+8.19")
26 (case "8.18" "1.0+8.18")
27 (case "8.17" "1.0+8.17")
28 (case "8.16" "1.0+8.16")
29 (case "8.15" "1.0+8.15")
30 (case "8.14" "1.0+8.14")
31 (case "8.13" "1.0+8.13")
32 (case "8.12" "0.6.8")
33 (case "8.11" "0.6.7")
34 (case "8.10" "0.6.6")
35 (case "8.9" "0.6.5")
36 (case "8.8" "0.6.3")
37 (case "8.7" "0.6.2")
38 ] null;
39
40 release."1.0+9.1".hash = "sha256-6bQsXcY8ouxP7pfJrT3leD9kuhNjpskJKpTv6oHZaTE=";
41 release."1.0+9.0".sha256 = "sha256-gXy70fj2bAkE0did4gI0wTyWp9AIvOo4xTTihaFIpZ0=";
42 release."1.0+8.20".sha256 = "sha256-szfH/OksCH3SCbcFjwEvLwHE5avmHp1vYiJM6KAXFqs=";
43 release."1.0+8.19".sha256 = "sha256-L1vjEydYiwDFTXES3sgfdaO/D50AbTJKBXUKUCgbpto=";
44 release."1.0+8.18".sha256 = "sha256-z14MI1VSYzPqmF1PqDXzymXWRMYoTlQAfR/P3Pdf7fI=";
45 release."1.0+8.17".sha256 = "sha256-gcvL3vseLKEF9xinT0579jXBBaA5E3rJ5KaU8RfKtm4=";
46 release."1.0+8.16".sha256 = "sha256-xy4xcVHaD1OHBdGUzUy3SeZnHtOf1+UIh6YjUYFINm0=";
47 release."1.0+8.15".sha256 = "sha256:1pxr0gakcz297y8hhrnssv5j07ccd58pv7rh7qv5g7855pfqrkg7";
48 release."1.0+8.14".sha256 = "sha256:01pmi7jcc77431jii6x6nd4m8jg4vycachiyi1h6dx9rp3a2508s";
49 release."1.0+8.13".sha256 = "sha256:0f8lj8b99n8nsq2jf5m0snblfs8yz50hmlqqq9nlw4qklq7j4z5z";
50 release."0.6.9".sha256 = "11mbydpcgk7y8pqzickbzx0ig7g9k9al71i9yfrcscd2xj8fwj8z";
51 release."0.6.8".sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps";
52 release."0.6.7".sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09";
53 release."0.6.6".sha256 = "1gjrm5zjzw4cisiwdr5b3iqa7s4cssa220xr0k96rwgk61rcjd8w";
54 release."0.6.5".sha256 = "1f34z24yg05b1096gqv36jr3vffkcjkf9qncii3pzhhvagxd0w2f";
55 release."0.6.3".rev = "0acbd0a594c7e927574d5f212cc73a486b5305d2";
56 release."0.6.3".sha256 = "0c95b0bz2kjm6swr5na4gs06lxxywradszxbr5ldh2zx02r3f3rx";
57 release."0.6.2".rev = "d76ddde37d918569945774733b7997e8b24daf51";
58 release."0.6.2".sha256 = "04lnf4b25yarysj848cfl8pd3i3pr3818acyp9hgwdgd1rqmhjwm";
59 release."0.6.1".rev = "c3b87af6bfa338e18b83f014ebd0e56e1f611663";
60 release."0.6.1".sha256 = "1jaafkwsb5450378nprjsds1illgdaq60gryi8kspw0i25ykz2c9";
61 release."0.6".sha256 = "0qvar8gfbrcs9fmvkph5asqz4l5fi63caykx3bsn8zf0xllkwv0n";
62 releaseRev = v: "v${v}";
63
64 mlPlugin = true;
65 buildInputs = with coq.ocamlPackages; [
66 ocaml
67 findlib
68 ocamlgraph
69 ];
70
71 buildFlags = lib.optional hasWarning "WARN_ERR=";
72
73 preInstall = ''
74 mkdir -p $out/bin
75 '';
76
77 extraInstallFlags = [ "BINDIR=$(out)/bin" ];
78
79 meta = {
80 description = "Build dependency graphs between Coq objects";
81 license = lib.licenses.lgpl21;
82 maintainers = with lib.maintainers; [ vbgl ];
83 };
84}).overrideAttrs
85 (
86 o:
87 lib.optionalAttrs (o.version != "dev" && lib.versions.isLe "1.0+9.0" o.version) {
88 nativeBuildInputs = [ autoreconfHook ];
89
90 # dpd_compute.ml uses deprecated Pervasives.compare
91 # Versions prior to 0.6.5 do not have the WARN_ERR build flag
92 preConfigure = lib.optionalString hasWarning ''
93 substituteInPlace Makefile.in --replace "-warn-error +a " ""
94 '';
95 }
96 )