nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 164 lines 6.7 kB view raw
1{ 2 lib, 3 mkCoqDerivation, 4 which, 5 coq, 6 stdlib, 7 version ? null, 8 elpi-version ? null, 9}: 10 11let 12 default-elpi-version = 13 if elpi-version != null then 14 elpi-version 15 else 16 ( 17 let 18 19 case = case: out: { inherit case out; }; 20 in 21 with lib.versions; 22 lib.switch coq.coq-version [ 23 (case (range "8.20" "8.20") "2.0.7") 24 (case (range "8.18" "8.19") "1.18.1") 25 (case (range "8.16" "8.17") "1.17.0") 26 (case "8.15" "1.15.0") 27 (case (range "8.13" "8.14") "1.13.7") 28 (case "8.12" "1.12.0") 29 (case "8.11" "1.11.4") 30 ] { } 31 ); 32 elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; }; 33 propagatedBuildInputs_wo_elpi = [ 34 coq.ocamlPackages.findlib 35 ]; 36 derivation = mkCoqDerivation { 37 pname = "elpi"; 38 repo = "coq-elpi"; 39 owner = "LPCIC"; 40 inherit version; 41 defaultVersion = 42 let 43 case = case: out: { inherit case out; }; 44 in 45 with lib.versions; 46 lib.switch coq.coq-version [ 47 (case (range "8.20" "8.20") "2.6.0") 48 (case (range "8.20" "8.20") "2.5.2") 49 (case "8.19" "2.0.1") 50 (case "8.18" "2.0.0") 51 (case "8.17" "1.18.0") 52 (case "8.16" "1.15.6") 53 (case "8.15" "1.14.0") 54 (case "8.14" "1.11.2") 55 (case "8.13" "1.11.1") 56 (case "8.12" "1.8.3_8.12") 57 (case "8.11" "1.6.3_8.11") 58 ] null; 59 release."2.6.0".sha256 = "sha256-23BHq1NFUkI3ayXnGUwiGFySLyY3EuH4RyMgAhQqI4g="; 60 release."2.5.2".sha256 = "sha256-lLzjPrbVB3rrqox528YiheUb0u89R84Xmrgkn0oplOs="; 61 release."2.5.0".sha256 = "sha256-Z5xjO83X/ZoTQlWnVupGXPH3HuJefr57Kv128I0dltg="; 62 release."2.4.0".sha256 = "sha256-W2+vVGExLLux8e0nSZESSoMVvrLxhL6dmXkb+JuKiqc="; 63 release."2.3.0".sha256 = "sha256-XVOI+s8Qpa7f17+Xq0y7IGPLFeJqo+cDcd3zfMuO7UU="; 64 release."2.2.0".sha256 = "sha256-rADEoqTXM7/TyYkUKsmCFfj6fjpWdnZEOK++5oLfC/I="; 65 release."2.0.1".sha256 = "sha256-cuoPsEJ+JRLVc9Golt2rJj4P7lKltTrrmQijjoViooc="; 66 release."2.0.0".sha256 = "sha256-A/cH324M21k3SZ7+YWXtaYEbu6dZQq3K0cb1RMKjbsM="; 67 release."1.19.0".sha256 = "sha256-kGoo61nJxeG/BqV+iQaV3iinwPStND+7+fYMxFkiKrQ="; 68 release."1.18.0".sha256 = "sha256-2fCOlhqi4YkiL5n8SYHuc3pLH+DArf9zuMH7IhpBc2Y="; 69 release."1.17.0".sha256 = "sha256-J8GatRKFU0ekNCG3V5dBI+FXypeHcLgC5QJYGYzFiEM="; 70 release."1.15.6".sha256 = "sha256-qc0q01tW8NVm83801HHOBHe/7H1/F2WGDbKO6nCXfno="; 71 release."1.15.1".sha256 = "sha256-NT2RlcIsFB9AvBhMxil4ZZIgx+KusMqDflj2HgQxsZg="; 72 release."1.14.0".sha256 = "sha256:1v2p5dlpviwzky2i14cj7gcgf8cr0j54bdm9fl5iz1ckx60j6nvp"; 73 release."1.13.0".sha256 = "1j7s7dlnjbw222gnbrsjgmjck1yrx7h6hwm8zikcyxi0zys17w7n"; 74 release."1.12.1".sha256 = "sha256-4mO6/co7NcIQSGIQJyoO8lNWXr6dqz+bIYPO/G0cPkY="; 75 release."1.11.2".sha256 = "0qk5cfh15y2zrja7267629dybd3irvxk1raz7z8qfir25a81ckd4"; 76 release."1.11.1".sha256 = "10j076vc2hdcbm15m6s7b6xdzibgfcbzlkgjnlkr2vv9k13qf8kc"; 77 release."1.10.1".sha256 = "1zsyx26dvj7pznfd2msl2w7zbw51q1nsdw0bdvdha6dga7ijf7xk"; 78 release."1.9.7".sha256 = "0rvn12h9dpk9s4pxy32p8j0a1h7ib7kg98iv1cbrdg25y5vs85n1"; 79 release."1.9.5".sha256 = "0gjdwmb6bvb5gh0a6ra48bz5fb3pr5kpxijb7a8mfydvar5i9qr6"; 80 release."1.9.4".sha256 = "0nii7238mya74f9g6147qmpg6gv6ic9b54x5v85nb6q60d9jh0jq"; 81 release."1.9.3".sha256 = "198irm800fx3n8n56vx1c6f626cizp1d7jfkrc6ba4iqhb62ma0z"; 82 release."1.9.2".sha256 = "1rr2fr8vjkc0is7vh1461aidz2iwkigdkp6bqss4hhv0c3ijnn07"; 83 release."1.8.3_8.12".sha256 = "15z2l4zy0qpw0ws7bvsmpmyv543aqghrfnl48nlwzn9q0v89p557"; 84 release."1.8.3_8.12".version = "1.8.3"; 85 release."1.8.2_8.12".sha256 = "1n6jwcdazvjgj8vsv2r9zgwpw5yqr5a1ndc2pwhmhqfl04b5dk4y"; 86 release."1.8.2_8.12".version = "1.8.2"; 87 release."1.8.1".sha256 = "1fbbdccdmr8g4wwpihzp4r2xacynjznf817lhijw6kqfav75zd0r"; 88 release."1.8.0".sha256 = "13ywjg94zkbki22hx7s4gfm9rr87r4ghsgan23xyl3l9z8q0idd1"; 89 release."1.7.0".sha256 = "1ws5cqr0xawv69prgygbl3q6dgglbaw0vc397h9flh90kxaqgyh8"; 90 release."1.6.3_8.11".sha256 = "1j340cr2bv95clzzkkfmsjkklham1mj84cmiyprzwv20q89zr1hp"; 91 release."1.6.3_8.11".version = "1.6.3"; 92 release."1.6.2_8.11".sha256 = "06xrx0ljilwp63ik2sxxr7h617dgbch042xfcnfpy5x96br147rn"; 93 release."1.6.2_8.11".version = "1.6.2"; 94 release."1.6.1_8.11".sha256 = "0yyyh35i1nb3pg4hw7cak15kj4y6y9l84nwar9k1ifdsagh5zq53"; 95 release."1.6.1_8.11".version = "1.6.1"; 96 release."1.6.0_8.11".sha256 = "0ahxjnzmd7kl3gl38kyjqzkfgllncr2ybnw8bvgrc6iddgga7bpq"; 97 release."1.6.0_8.11".version = "1.6.0"; 98 release."1.6.0".sha256 = "0kf99i43mlf750fr7fric764mm495a53mg5kahnbp6zcjcxxrm0b"; 99 releaseRev = v: "v${v}"; 100 101 buildFlags = [ "OCAMLWARN=" ]; 102 103 mlPlugin = true; 104 useDuneifVersion = v: lib.versions.isGe "2.2.0" v || v == "dev"; 105 106 propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [ elpi ]; 107 108 preConfigure = '' 109 make elpi/dune || true 110 ''; 111 112 meta = { 113 description = "Coq plugin embedding ELPI"; 114 maintainers = [ lib.maintainers.cohencyril ]; 115 license = lib.licenses.lgpl21Plus; 116 }; 117 }; 118 patched-derivation1 = derivation.overrideAttrs ( 119 o: 120 lib.optionalAttrs (o ? elpi-version) { 121 propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [ 122 (coq.ocamlPackages.elpi.override { version = o.elpi-version; }) 123 ]; 124 } 125 ); 126 patched-derivation2 = patched-derivation1.overrideAttrs ( 127 o: 128 lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.2.0" o.version)) 129 { 130 propagatedBuildInputs = o.propagatedBuildInputs ++ [ coq.ocamlPackages.ppx_optcomp ]; 131 } 132 ); 133 patched-derivation3 = patched-derivation2.overrideAttrs ( 134 o: 135 lib.optionalAttrs (o.version != null && o.version == "2.4.0") { 136 propagatedBuildInputs = o.propagatedBuildInputs ++ [ stdlib ]; 137 } 138 ); 139 patched-derivation4 = patched-derivation3.overrideAttrs ( 140 o: 141 lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.5.0" o.version)) 142 { 143 configurePhase = '' 144 make dune-files || true 145 ''; 146 buildPhase = '' 147 dune build -p rocq-elpi @install ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} 148 ''; 149 installPhase = '' 150 dune install --root . rocq-elpi --prefix=$out --libdir $OCAMLFIND_DESTDIR 151 mkdir $out/lib/coq/ 152 mv $OCAMLFIND_DESTDIR/coq $out/lib/coq/${coq.coq-version} 153 ''; 154 } 155 ); 156in 157# this is just a wrapper for rocqPackages.stdlib for Rocq >= 9.0 158if coq.rocqPackages ? rocq-elpi then 159 coq.rocqPackages.rocq-elpi.override { 160 inherit version elpi-version; 161 inherit (coq.rocqPackages) rocq-core; 162 } 163else 164 patched-derivation4