about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ocaml-modules/mirage-flow
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/ocaml-modules/mirage-flow')
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-flow/combinators.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-flow/default.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-flow/unix.nix25
3 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/combinators.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/combinators.nix
new file mode 100644
index 000000000000..5500d0551253
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/combinators.nix
@@ -0,0 +1,15 @@
+{ buildDunePackage, mirage-flow, fmt, lwt, logs, cstruct, mirage-clock }:
+
+buildDunePackage {
+  pname = "mirage-flow-combinators";
+
+  inherit (mirage-flow) version src;
+
+  duneVersion = "3";
+
+  propagatedBuildInputs = [ lwt logs cstruct mirage-clock mirage-flow ];
+
+  meta = mirage-flow.meta // {
+    description = "Flow implementations and combinators for MirageOS specialized to lwt";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/default.nix
new file mode 100644
index 000000000000..6b454512915b
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchurl, cstruct, fmt, lwt }:
+
+buildDunePackage rec {
+  pname = "mirage-flow";
+  version = "3.0.0";
+
+  duneVersion = "3";
+  minimalOCamlVersion = "4.05";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage-flow/releases/download/v${version}/mirage-flow-v${version}.tbz";
+    hash = "sha256-1wvabIXsJ0e+2IvE2V8mnSgQUDuSkT8IB75SkWlhOPw=";
+  };
+
+  propagatedBuildInputs = [ cstruct fmt lwt ];
+
+  meta = {
+    description = "Flow implementations and combinators for MirageOS";
+    homepage = "https://github.com/mirage/mirage-flow";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/unix.nix
new file mode 100644
index 000000000000..12681911a3de
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-flow/unix.nix
@@ -0,0 +1,25 @@
+{ buildDunePackage, fmt, logs, mirage-flow, ocaml_lwt, cstruct
+, alcotest, mirage-flow-combinators
+}:
+
+buildDunePackage {
+  pname = "mirage-flow-unix";
+
+  inherit (mirage-flow) version src;
+
+  duneVersion = "3";
+
+  # Make tests compatible with alcotest 1.4.0
+  postPatch = ''
+    substituteInPlace test/test.ml --replace 'Fmt.kstrf Alcotest.fail' 'Fmt.kstrf (fun s -> Alcotest.fail s)'
+  '';
+
+  propagatedBuildInputs = [ fmt logs mirage-flow ocaml_lwt cstruct ];
+
+  doCheck = true;
+  checkInputs = [ alcotest mirage-flow-combinators ];
+
+  meta = mirage-flow.meta // {
+    description = "Flow implementations and combinators for MirageOS on Unix";
+  };
+}