diff --git a/pkgs/development/ocaml-modules/wodan/default.nix b/pkgs/development/ocaml-modules/wodan/default.nix new file mode 100644 index 000000000000..64ca29f20308 --- /dev/null +++ b/pkgs/development/ocaml-modules/wodan/default.nix @@ -0,0 +1,40 @@ +{ lib, buildDunePackage, fetchFromGitHub, lwt_ppx, ppx_cstruct, optint +, checkseum, diet, bitv, nocrypto, logs, lru, io-page, mirage-block }: + +buildDunePackage rec { + pname = "wodan"; + version = "unstable-2020-11-20"; + + useDune2 = true; + + src = fetchFromGitHub { + owner = "mirage"; + repo = pname; + rev = "cc08fe25888051c207f1009bcd2d39f8c514484f"; + sha256 = "0186vlhnl8wcz2hmpn327n9a0bibnypmjy3w4nxq3yyglh6vj1im"; + fetchSubmodules = true; + }; + + minimumOCamlVersion = "4.08"; + + propagatedBuildInputs = [ + lwt_ppx + ppx_cstruct + optint + checkseum + diet + bitv + nocrypto + logs + lru + io-page + mirage-block + ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A flash-friendly, safe and flexible filesystem library"; + license = licenses.isc; + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/pkgs/development/ocaml-modules/wodan/irmin.nix b/pkgs/development/ocaml-modules/wodan/irmin.nix new file mode 100644 index 000000000000..a42259af9e6b --- /dev/null +++ b/pkgs/development/ocaml-modules/wodan/irmin.nix @@ -0,0 +1,20 @@ +{ lib, buildDunePackage, io-page-unix, irmin-chunk, irmin-git, irmin-unix +, mirage-block-ramdisk, mirage-block-unix, wodan }: + +buildDunePackage rec { + pname = "wodan-irmin"; + inherit (wodan) version src useDune2; + + propagatedBuildInputs = [ + io-page-unix + irmin-chunk + irmin-git + irmin-unix + mirage-block-ramdisk + mirage-block-unix + wodan + ]; + + meta = wodan.meta // { description = "Wodan as an Irmin store"; }; + +} diff --git a/pkgs/development/ocaml-modules/wodan/unix.nix b/pkgs/development/ocaml-modules/wodan/unix.nix new file mode 100644 index 000000000000..64a18b6b83d7 --- /dev/null +++ b/pkgs/development/ocaml-modules/wodan/unix.nix @@ -0,0 +1,27 @@ +{ lib, buildDunePackage, base64, benchmark, csv, cmdliner, wodan, afl-persistent +, io-page-unix, mirage-block-ramdisk, mirage-block-unix }: + +buildDunePackage rec { + outputs = [ "bin" "out" ]; + pname = "wodan-unix"; + inherit (wodan) version src useDune2; + + propagatedBuildInputs = [ + afl-persistent + base64 + benchmark + cmdliner + csv + io-page-unix + mirage-block-ramdisk + mirage-block-unix + wodan + ]; + + postInstall = '' + moveToOutput bin "''${!outputBin}" + ''; + + meta = wodan.meta // { description = "Wodan clients with Unix integration"; }; + +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 97650eca2c6e..78b5959f3c2b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1075,6 +1075,12 @@ let webmachine = callPackage ../development/ocaml-modules/webmachine { }; + wodan = callPackage ../development/ocaml-modules/wodan { }; + + wodan-irmin = callPackage ../development/ocaml-modules/wodan/irmin.nix { }; + + wodan-unix = callPackage ../development/ocaml-modules/wodan/unix.nix { }; + wtf8 = callPackage ../development/ocaml-modules/wtf8 { }; x509 = callPackage ../development/ocaml-modules/x509 { };