nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 83 lines 1.9 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 ocaml, 6 version ? if lib.versionAtLeast ocaml.version "4.14" then "0.10.0" else "0.8.0", 7 topkg, 8 buildTopkgPackage, 9 cmdlinerSupport ? true, 10 cmdliner, 11 fmtSupport ? lib.versionAtLeast ocaml.version "4.08", 12 fmt, 13 jsooSupport ? true, 14 js_of_ocaml-compiler, 15 lwtSupport ? true, 16 lwt, 17}: 18let 19 param = 20 { 21 "0.8.0" = { 22 minimalOCamlVersion = "4.03"; 23 hash = "sha256-mmFRQJX6QvMBIzJiO2yNYF1Ce+qQS2oNF3+OwziCNtg="; 24 }; 25 "0.10.0" = { 26 minimalOCamlVersion = "4.14"; 27 hash = "sha256-dg7CkcEo11t0gmCRM3dk+SW1ykFLAuLTNqCze/MN9Oo="; 28 }; 29 } 30 .${version}; 31 32 pname = "logs"; 33 webpage = "https://erratique.ch/software/${pname}"; 34 35 optional_deps = [ 36 { 37 pkg = js_of_ocaml-compiler; 38 enable_flag = "--with-js_of_ocaml-compiler"; 39 enabled = jsooSupport; 40 } 41 { 42 pkg = fmt; 43 enable_flag = "--with-fmt"; 44 enabled = fmtSupport; 45 } 46 { 47 pkg = lwt; 48 enable_flag = "--with-lwt"; 49 enabled = lwtSupport; 50 } 51 { 52 pkg = cmdliner; 53 enable_flag = "--with-cmdliner"; 54 enabled = cmdlinerSupport; 55 } 56 ]; 57 enable_flags = lib.concatMap (d: [ 58 d.enable_flag 59 (lib.boolToString d.enabled) 60 ]) optional_deps; 61 optional_buildInputs = map (d: d.pkg) (lib.filter (d: d.enabled) optional_deps); 62in 63buildTopkgPackage { 64 inherit pname version; 65 inherit (param) minimalOCamlVersion; 66 67 src = fetchurl { 68 url = "${webpage}/releases/${pname}-${version}.tbz"; 69 inherit (param) hash; 70 }; 71 72 buildInputs = optional_buildInputs; 73 74 buildPhase = "${topkg.run} build ${lib.escapeShellArgs enable_flags}"; 75 76 meta = { 77 description = "Logging infrastructure for OCaml"; 78 homepage = webpage; 79 inherit (ocaml.meta) platforms; 80 maintainers = with lib.maintainers; [ sternenseemann ]; 81 license = lib.licenses.isc; 82 }; 83}