Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 mkCoqDerivation, 4 coq, 5 mathcomp-boot, 6 ExtLib, 7 simple-io, 8 version ? null, 9}: 10 11let 12 recent = lib.versions.isGe "8.7" coq.coq-version || coq.coq-version == "dev"; 13in 14(mkCoqDerivation { 15 pname = "QuickChick"; 16 owner = "QuickChick"; 17 inherit version; 18 defaultVersion = 19 let 20 case = coq: mc: out: { 21 cases = [ 22 coq 23 mc 24 ]; 25 inherit out; 26 }; 27 in 28 lib.switch 29 [ coq.coq-version mathcomp-boot.version ] 30 [ 31 (case (lib.versions.range "8.15" "9.0") lib.pred.true "2.0.4") 32 (case (lib.versions.range "8.13" "8.17") lib.pred.true "1.6.5") 33 (case "8.13" lib.pred.true "1.5.0") 34 (case "8.12" lib.pred.true "1.4.0") 35 (case "8.11" lib.pred.true "1.3.2") 36 (case "8.10" lib.pred.true "1.2.1") 37 (case "8.9" lib.pred.true "1.1.0") 38 (case "8.8" lib.pred.true "20190311") 39 (case "8.7" (lib.versions.isLe "1.8") "1.0.0") 40 (case "8.6" lib.pred.true "20171102") 41 (case "8.5" lib.pred.true "20170512") 42 ] 43 null; 44 release."2.0.4".sha256 = "sha256-WD8B+n8gyGctHMO+M8201Ca3Uw8zCWYsOatSNGCf0/s="; 45 release."2.0.2".sha256 = "sha256-xxKkwDRjB8nUiXNhein1Ppn0DP5FZ13J90xUPAnQBbs="; 46 release."2.0.1".sha256 = "sha256-gJc+9Or6tbqE00920Il4pnEvokRoiADX6CxP/Q0QZaY="; 47 release."1.6.5".sha256 = "sha256-rcFyRDH8UbB9KVk10P5qjtPkWs04p78VNHkCq4mXr3U="; 48 release."1.6.4".sha256 = "sha256-C1060wPSU33yZAFLxGmZlAMXASnx98qz3oSLO8DO+mM="; 49 release."1.6.2".sha256 = "0g5q9zw3xd4zndihq96nxkq4w3dh05418wzlwdk1nnn3b6vbx6z0"; 50 release."1.5.0".sha256 = "1lq8x86vd3vqqh2yq6hvyagpnhfq5wmk5pg2z0xq7b7dcw7hyfkw"; 51 release."1.4.0".sha256 = "068p48pm5yxjc3yv8qwzp25bp9kddvxj81l31mjkyx3sdrsw3kyc"; 52 release."1.3.2".sha256 = "0lciwaqv288dh2f13xk2x0lrn6zyrkqy6g4yy927wwzag2gklfrs"; 53 release."1.2.1".sha256 = "17vz88xjzxh3q7hs6hnndw61r3hdfawxp5awqpgfaxx4w6ni8z46"; 54 release."1.1.0".sha256 = "1c34v1k37rk7v0xk2czv5n79mbjxjrm6nh3llg2mpfmdsqi68wf3"; 55 release."1.0.0".sha256 = "1gqy9a4yavd0sa7kgysf9gf2lq4p8dmn4h89y8081f2j8zli0w5y"; 56 release."20190311".rev = "22af9e9a223d0038f05638654422e637e863b355"; 57 release."20190311".sha256 = "00rnr19lg6lg0haq1sy4ld38p7imzand6fc52fvfq27gblxkp2aq"; 58 release."20171102".rev = "0fdb769e1dc87a278383b44a9f5102cc7ccbafcf"; 59 release."20171102".sha256 = "0fri4nih40vfb0fbr82dsi631ydkw48xszinq43lyinpknf54y17"; 60 release."20170512".rev = "31eb050ae5ce57ab402db9726fb7cd945a0b4d03"; 61 release."20170512".sha256 = "033ch10i5wmqyw8j6wnr0dlbnibgfpr1vr0c07q3yj6h23xkmqpg"; 62 releaseRev = v: "v${v}"; 63 64 preConfigure = lib.optionalString recent "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native"; 65 66 useDuneifVersion = v: lib.versions.isGe "2.1" v || v == "dev"; 67 opam-name = "coq-quickchick"; 68 69 mlPlugin = true; 70 nativeBuildInputs = lib.optional recent coq.ocamlPackages.ocamlbuild; 71 propagatedBuildInputs = [ 72 mathcomp-boot 73 ] 74 ++ lib.optionals recent [ 75 ExtLib 76 simple-io 77 ]; 78 extraInstallFlags = [ "-f Makefile.coq" ]; 79 80 enableParallelBuilding = false; 81 82 meta = with lib; { 83 description = "Randomized property-based testing plugin for Coq; a clone of Haskell QuickCheck"; 84 maintainers = with maintainers; [ jwiegley ]; 85 }; 86}).overrideAttrs 87 ( 88 o: 89 let 90 after_1_6 = lib.versions.isGe "1.6" o.version || o.version == "dev"; 91 after_2_1 = lib.versions.isGe "2.1" o.version || o.version == "dev"; 92 in 93 { 94 nativeBuildInputs = 95 o.nativeBuildInputs 96 ++ lib.optional after_1_6 coq.ocamlPackages.cppo 97 ++ lib.optional after_2_1 coq.ocamlPackages.menhir; 98 propagatedBuildInputs = 99 o.propagatedBuildInputs 100 ++ lib.optionals after_1_6 ( 101 with coq.ocamlPackages; 102 [ 103 findlib 104 zarith 105 ] 106 ); 107 } 108 )