nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 92 lines 2.1 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 buildDunePackage, 6 ocaml, 7 findlib, 8 cppo, 9}: 10 11let 12 param = 13 let 14 v6_6 = { 15 version = "6.6"; 16 sha256 = "sha256-QhuaQ9346a3neoRM4GrOVzjR8fg9ysMZR1VzNgyIQtc="; 17 nativeBuildInputs = [ cppo ]; 18 buildInputs = [ cppo ]; 19 }; 20 in 21 { 22 "4.02" = { 23 version = "5.0+4.02.0"; 24 sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"; 25 }; 26 "4.03" = { 27 version = "5.0+4.03.0"; 28 sha256 = "061v1fl5z7z3ywi4ppryrlcywnvnqbsw83ppq72qmkc7ma4603jg"; 29 }; 30 "4.04" = { 31 version = "unstable-20161114"; 32 rev = "49c08e2e4ea8fef88692cd1dcc1b38a9133f17ac"; 33 sha256 = "0ywzfkf5brj33nwh49k9if8x8v433ral25f3nbklfc9vqr06zrfl"; 34 }; 35 "4.05" = { 36 version = "5.0+4.05.0"; 37 sha256 = "1jvvhk6wnkvm7b9zph309ihsc0hyxfpahmxxrq19vx8c674jsdm4"; 38 }; 39 "4.06" = { 40 version = "5.1+4.06.0"; 41 sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"; 42 }; 43 "4.07" = { 44 version = "5.1+4.06.0"; 45 sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"; 46 }; 47 } 48 .${ocaml.meta.branch} or v6_6; 49in 50 51let 52 src = fetchFromGitHub { 53 owner = "alainfrisch"; 54 repo = pname; 55 rev = param.rev or param.version; 56 inherit (param) sha256; 57 }; 58 pname = "ppx_tools"; 59 meta = { 60 description = "Tools for authors of ppx rewriters"; 61 homepage = "https://www.lexifi.com/ppx_tools"; 62 license = lib.licenses.mit; 63 maintainers = with lib.maintainers; [ vbgl ]; 64 broken = lib.versionAtLeast ocaml.version "5.2"; 65 }; 66in 67if lib.versionAtLeast param.version "6.0" then 68 buildDunePackage { 69 inherit pname src meta; 70 inherit (param) version buildInputs nativeBuildInputs; 71 } 72else 73 stdenv.mkDerivation { 74 name = "ocaml${ocaml.version}-${pname}-${param.version}"; 75 76 inherit src; 77 78 nativeBuildInputs = [ 79 ocaml 80 findlib 81 ]; 82 83 strictDeps = true; 84 85 createFindlibDestdir = true; 86 87 dontStrip = true; 88 89 meta = meta // { 90 inherit (ocaml.meta) platforms; 91 }; 92 }