summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/irmin
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules/irmin')
-rw-r--r--pkgs/development/ocaml-modules/irmin/1.4.nix26
-rw-r--r--pkgs/development/ocaml-modules/irmin/chunk.nix18
-rw-r--r--pkgs/development/ocaml-modules/irmin/containers.nix27
-rw-r--r--pkgs/development/ocaml-modules/irmin/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/irmin/git.nix26
-rw-r--r--pkgs/development/ocaml-modules/irmin/graphql.nix15
-rw-r--r--pkgs/development/ocaml-modules/irmin/http.nix7
-rw-r--r--pkgs/development/ocaml-modules/irmin/layers.nix18
-rw-r--r--pkgs/development/ocaml-modules/irmin/mem.nix21
-rw-r--r--pkgs/development/ocaml-modules/irmin/mirage-git.nix27
-rw-r--r--pkgs/development/ocaml-modules/irmin/mirage-graphql.nix21
-rw-r--r--pkgs/development/ocaml-modules/irmin/mirage.nix15
-rw-r--r--pkgs/development/ocaml-modules/irmin/pack.nix9
-rw-r--r--pkgs/development/ocaml-modules/irmin/ppx.nix20
-rw-r--r--pkgs/development/ocaml-modules/irmin/test.nix8
-rw-r--r--pkgs/development/ocaml-modules/irmin/unix.nix16
16 files changed, 213 insertions, 85 deletions
diff --git a/pkgs/development/ocaml-modules/irmin/1.4.nix b/pkgs/development/ocaml-modules/irmin/1.4.nix
deleted file mode 100644
index c1d170f78ee..00000000000
--- a/pkgs/development/ocaml-modules/irmin/1.4.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, fetchurl, buildDunePackage, ocaml
-, astring, cstruct, fmt, hex, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-}:
-
-buildDunePackage rec {
-  pname = "irmin";
-  version = "1.4.0";
-
-  minimumOCamlVersion = "4.03";
-
-  src = fetchurl {
-    url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "019di4cz0z65knl232rnwj26npnc1mqh8j71xbf0mav6x350g1w5";
-  };
-
-  propagatedBuildInputs = [ astring cstruct fmt hex jsonm logs ocaml_lwt ocamlgraph uri ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/mirage/irmin";
-    description = "Irmin, a distributed database that follows the same design principles as Git";
-    license = licenses.isc;
-    maintainers = [ maintainers.alexfmpe ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/irmin/chunk.nix b/pkgs/development/ocaml-modules/irmin/chunk.nix
new file mode 100644
index 00000000000..0014bbbcfcb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/chunk.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage, irmin, irmin-test, alcotest }:
+
+buildDunePackage rec {
+
+  pname = "irmin-chunk";
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [ irmin ];
+
+  doCheck = true;
+  checkInputs = [ alcotest irmin-test ];
+
+  meta = irmin.meta // {
+    description = "Irmin backend which allow to store values into chunks";
+  };
+
+}
+
diff --git a/pkgs/development/ocaml-modules/irmin/containers.nix b/pkgs/development/ocaml-modules/irmin/containers.nix
new file mode 100644
index 00000000000..76383099a41
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/containers.nix
@@ -0,0 +1,27 @@
+{ buildDunePackage
+, irmin, irmin-unix, irmin-git, ppx_irmin, lwt, mtime
+, alcotest, alcotest-lwt, cacert
+}:
+
+buildDunePackage {
+  pname = "irmin-containers";
+
+  inherit (ppx_irmin) src version useDune2;
+
+  nativeBuildInputs = [
+    ppx_irmin
+  ];
+
+  propagatedBuildInputs = [
+    irmin irmin-unix irmin-git ppx_irmin lwt mtime
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest alcotest-lwt cacert
+  ];
+
+  meta = ppx_irmin.meta // {
+    description = "Mergeable Irmin data structures";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix
index 2e3e27df7ff..fe13377b3c2 100644
--- a/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/pkgs/development/ocaml-modules/irmin/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, buildDunePackage
-, astring, base64, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-, alcotest, hex, ppx_irmin
+{ lib, buildDunePackage
+, astring, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
+, repr, ppx_irmin, bheap
 }:
 
 buildDunePackage {
@@ -11,10 +11,22 @@ buildDunePackage {
   useDune2 = true;
   minimumOCamlVersion = "4.07";
 
-  propagatedBuildInputs = [ astring base64 digestif fmt jsonm logs ocaml_lwt ocamlgraph uri ];
+  propagatedBuildInputs = [
+    astring
+    digestif
+    fmt
+    jsonm
+    logs
+    ocaml_lwt
+    ocamlgraph
+    uri
+    repr
+    bheap
+    ppx_irmin
+  ];
 
-  checkInputs = [ alcotest hex ppx_irmin ];
-  doCheck = true;
+  # circular dependency on irmin-mem
+  doCheck = false;
 
   meta = ppx_irmin.meta // {
     description = "A distributed database built on the same principles as Git";
diff --git a/pkgs/development/ocaml-modules/irmin/git.nix b/pkgs/development/ocaml-modules/irmin/git.nix
index b222bc53e3a..d477c932928 100644
--- a/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/pkgs/development/ocaml-modules/irmin/git.nix
@@ -1,6 +1,10 @@
-{ lib, buildDunePackage, git, irmin, irmin-mem, irmin-test, git-unix }:
+{ lib, buildDunePackage
+, git, irmin, irmin-test, ppx_irmin, git-cohttp-unix, git-unix
+, digestif, cstruct, fmt, astring, fpath, logs, lwt, uri
+, mtime, alcotest, cacert
+}:
 
-buildDunePackage rec {
+buildDunePackage {
 
   pname = "irmin-git";
 
@@ -8,9 +12,21 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ git irmin ];
-
-  checkInputs = lib.optionals doCheck [ git-unix irmin-mem irmin-test ];
+  propagatedBuildInputs = [
+    git
+    irmin
+    ppx_irmin
+    digestif
+    cstruct
+    fmt
+    astring
+    fpath
+    logs
+    lwt
+    uri
+  ];
+
+  checkInputs = [ mtime alcotest git-cohttp-unix git-unix irmin-test cacert ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/graphql.nix b/pkgs/development/ocaml-modules/irmin/graphql.nix
index 6e4598dd986..03c8f1eca29 100644
--- a/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -1,4 +1,6 @@
-{ lib, buildDunePackage, cohttp-lwt, graphql-cohttp, graphql-lwt, irmin }:
+{ lib, buildDunePackage, cohttp-lwt, graphql-cohttp, graphql-lwt, irmin
+, alcotest, alcotest-lwt, logs, yojson, cohttp-lwt-unix, cacert
+}:
 
 buildDunePackage rec {
 
@@ -10,8 +12,15 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp-lwt graphql-cohttp graphql-lwt irmin ];
 
-  # test requires network
-  doCheck = false;
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    alcotest-lwt
+    logs
+    cohttp-lwt-unix
+    yojson
+    cacert
+  ];
 
   meta = irmin.meta // {
     description = "GraphQL server for Irmin";
diff --git a/pkgs/development/ocaml-modules/irmin/http.nix b/pkgs/development/ocaml-modules/irmin/http.nix
index 24e9f52aa08..7bfae998202 100644
--- a/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/pkgs/development/ocaml-modules/irmin/http.nix
@@ -1,5 +1,6 @@
 { lib, buildDunePackage, cohttp-lwt, irmin, webmachine
-, checkseum, git-unix, irmin-git, irmin-mem, irmin-test
+, checkseum, git-unix, irmin-git, irmin-test, digestif, git-cohttp-unix
+, cacert
 }:
 
 buildDunePackage rec {
@@ -12,7 +13,9 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
-  checkInputs = lib.optionals doCheck [ checkseum git-unix irmin-git irmin-mem irmin-test ];
+  checkInputs = [
+    digestif checkseum git-cohttp-unix git-unix irmin-git irmin-test cacert
+  ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/layers.nix b/pkgs/development/ocaml-modules/irmin/layers.nix
new file mode 100644
index 00000000000..40410b004ae
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/layers.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, irmin, mtime, logs, lwt }:
+
+buildDunePackage {
+  pname = "irmin-layers";
+
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin
+    mtime
+    logs
+    lwt
+  ];
+
+  meta = irmin.meta // {
+    description = "Combine different Irmin stores into a single, layered store";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/mem.nix b/pkgs/development/ocaml-modules/irmin/mem.nix
deleted file mode 100644
index 1b8947849a9..00000000000
--- a/pkgs/development/ocaml-modules/irmin/mem.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildDunePackage, irmin, irmin-test }:
-
-buildDunePackage rec {
-
-  pname = "irmin-mem";
-
-  inherit (irmin) version src;
-
-  useDune2 = true;
-
-  propagatedBuildInputs = [ irmin ];
-
-  checkInputs = lib.optional doCheck irmin-test;
-
-  doCheck = true;
-
-  meta = irmin.meta // {
-    description = "Generic in-memory Irmin stores";
-  };
-
-}
diff --git a/pkgs/development/ocaml-modules/irmin/mirage-git.nix b/pkgs/development/ocaml-modules/irmin/mirage-git.nix
new file mode 100644
index 00000000000..e33b766bd4c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/mirage-git.nix
@@ -0,0 +1,27 @@
+{ buildDunePackage, irmin-mirage, irmin-git
+, mirage-kv, cohttp, conduit-lwt, conduit-mirage
+, git-paf, fmt, git, lwt, mirage-clock, uri
+}:
+
+buildDunePackage {
+  pname = "irmin-mirage-git";
+
+  inherit (irmin-mirage) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin-mirage
+    irmin-git
+    mirage-kv
+    cohttp
+    conduit-lwt
+    conduit-mirage
+    git-paf
+    fmt
+    git
+    lwt
+    mirage-clock
+    uri
+  ];
+
+  inherit (irmin-mirage) meta;
+}
diff --git a/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix b/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix
new file mode 100644
index 00000000000..d550b9c924b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/mirage-graphql.nix
@@ -0,0 +1,21 @@
+{ buildDunePackage, irmin-mirage, irmin-graphql
+, mirage-clock, cohttp-lwt, lwt, uri, git
+}:
+
+buildDunePackage {
+  pname = "irmin-mirage-graphql";
+
+  inherit (irmin-mirage) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin-mirage
+    irmin-graphql
+    mirage-clock
+    cohttp-lwt
+    lwt
+    uri
+    git
+  ];
+
+  inherit (irmin-mirage) meta;
+}
diff --git a/pkgs/development/ocaml-modules/irmin/mirage.nix b/pkgs/development/ocaml-modules/irmin/mirage.nix
new file mode 100644
index 00000000000..675c8a3fdd2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/mirage.nix
@@ -0,0 +1,15 @@
+{ buildDunePackage, irmin, fmt, ptime, mirage-clock }:
+
+buildDunePackage {
+  pname = "irmin-mirage";
+
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [
+    irmin fmt ptime mirage-clock
+  ];
+
+  meta = irmin.meta // {
+    description = "MirageOS-compatible Irmin stores";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/pack.nix b/pkgs/development/ocaml-modules/irmin/pack.nix
index b0081eb366e..5955dda8ed9 100644
--- a/pkgs/development/ocaml-modules/irmin/pack.nix
+++ b/pkgs/development/ocaml-modules/irmin/pack.nix
@@ -1,4 +1,6 @@
-{ lib, buildDunePackage, alcotest-lwt, index, irmin, irmin-test, ocaml_lwt }:
+{ lib, buildDunePackage
+, alcotest-lwt, index, irmin, irmin-layers, irmin-test, ocaml_lwt, fpath, optint
+}:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.02.3";
@@ -9,9 +11,10 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ index irmin ocaml_lwt ];
+  buildInputs = [ fpath ];
+  propagatedBuildInputs = [ index irmin irmin-layers ocaml_lwt optint ];
 
-  checkInputs = lib.optionals doCheck [ alcotest-lwt irmin-test ];
+  checkInputs = [ alcotest-lwt irmin-test ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix
index 35aa659fbc8..8d57e18dc81 100644
--- a/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -1,29 +1,27 @@
-{ lib, fetchurl, buildDunePackage, ppxlib, ocaml-syntax-shims }:
+{ lib, fetchurl, buildDunePackage, ppxlib, ppx_repr }:
 
 buildDunePackage rec {
   pname = "ppx_irmin";
-  version = "2.2.0";
+  version = "2.7.2";
 
   src = fetchurl {
     url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "0gzw918b661qkvd140hilww9jsc49rxsxz1k4iihyvikjn202km4";
+    sha256 = "29c68c5001a727aaa7a6842d6204ffa3e24b3544fa4f6af2234cdbfa032f7fdf";
   };
 
-  minimumOCamlVersion = "4.06";
+  minimumOCamlVersion = "4.08";
 
   useDune2 = true;
 
-  buildInputs = [ ocaml-syntax-shims ];
-  propagatedBuildInputs = [ ppxlib ];
-
-  # tests depend on irmin, would create mutual dependency
-  # opt to test irmin instead of ppx_irmin
-  doCheck = false;
+  propagatedBuildInputs = [
+    ppx_repr
+    ppxlib
+  ];
 
   meta = {
     homepage = "https://irmin.org/";
     description = "PPX deriver for Irmin generics";
     license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
+    maintainers = with lib.maintainers; [ vbgl sternenseemann ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/irmin/test.nix b/pkgs/development/ocaml-modules/irmin/test.nix
index b8a3f3ae245..90141d925e6 100644
--- a/pkgs/development/ocaml-modules/irmin/test.nix
+++ b/pkgs/development/ocaml-modules/irmin/test.nix
@@ -1,4 +1,6 @@
-{ buildDunePackage, alcotest, cmdliner, irmin, metrics-unix, mtime }:
+{ buildDunePackage
+, alcotest, cmdliner, irmin, metrics-unix, mtime, irmin-layers
+}:
 
 buildDunePackage {
 
@@ -8,7 +10,9 @@ buildDunePackage {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ alcotest cmdliner irmin metrics-unix mtime ];
+  propagatedBuildInputs = [
+    alcotest cmdliner irmin metrics-unix mtime irmin-layers
+  ];
 
   meta = irmin.meta // {
     description = "Irmin test suite";
diff --git a/pkgs/development/ocaml-modules/irmin/unix.nix b/pkgs/development/ocaml-modules/irmin/unix.nix
index 7a09eaabd3e..89cf36979bd 100644
--- a/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -1,7 +1,7 @@
 { lib, buildDunePackage
-, checkseum, cmdliner, git-unix, yaml
-, irmin, irmin-fs, irmin-git, irmin-graphql, irmin-http, irmin-mem, irmin-pack, irmin-watcher
-, irmin-test
+, checkseum, cmdliner, git-unix, git-cohttp-unix, yaml, fpath
+, irmin, irmin-fs, irmin-git, irmin-graphql, irmin-http
+, irmin-pack, irmin-watcher, irmin-test, cacert
 }:
 
 buildDunePackage rec {
@@ -12,11 +12,15 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ checkseum cmdliner git-unix yaml
-    irmin irmin-fs irmin-git irmin-graphql irmin-http irmin-mem irmin-pack irmin-watcher
+  propagatedBuildInputs = [
+    checkseum cmdliner git-unix yaml fpath
+    irmin irmin-fs irmin-git irmin-graphql irmin-http
+    irmin-pack irmin-watcher git-cohttp-unix
   ];
 
-  checkInputs = lib.optional doCheck irmin-test;
+  checkInputs = [
+    irmin-test cacert
+  ];
 
   doCheck = true;