diff --git a/pkgs/development/ocaml-modules/index/default.nix b/pkgs/development/ocaml-modules/index/default.nix index b1141f814a89..d0857f7ef0a1 100644 --- a/pkgs/development/ocaml-modules/index/default.nix +++ b/pkgs/development/ocaml-modules/index/default.nix @@ -1,16 +1,17 @@ -{ lib, fetchurl, buildDunePackage, fmt, logs }: +{ lib, fetchurl, buildDunePackage, fmt, logs, stdlib-shims }: buildDunePackage rec { pname = "index"; - version = "1.0.1"; + version = "1.2.0"; minimumOCamlVersion = "4.07"; src = fetchurl { url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz"; - sha256 = "1006wr3g21s4j2vsd73gphhkrh1fy4swh6gqvlsa9c6q7vz9wbvz"; + sha256 = "0d44s1d2mpxvpg0zh57c928wf1w1wd33l1fw5r62al5zmi710ff6"; }; + buildInputs = [ stdlib-shims ]; propagatedBuildInputs = [ fmt logs ]; meta = { diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix index 2db57671177f..cba677591676 100644 --- a/pkgs/development/ocaml-modules/irmin/default.nix +++ b/pkgs/development/ocaml-modules/irmin/default.nix @@ -6,13 +6,13 @@ buildDunePackage rec { pname = "irmin"; - version = "2.0.0"; + version = "2.1.0"; - minimumOCamlVersion = "4.06"; + minimumOCamlVersion = "4.07"; src = fetchurl { url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz"; - sha256 = "09qffvgi5yrm3ghiywlbdhjly8xb5x5njnan213q8j033fzmf2dr"; + sha256 = "1ji8r7zbdmhbk8r8w2hskd9z7pnvirzbhincfxndxgdaxbfkff5g"; }; propagatedBuildInputs = [ astring base64 digestif fmt jsonm logs ocaml_lwt ocamlgraph uri ]; diff --git a/pkgs/development/ocaml-modules/irmin/pack.nix b/pkgs/development/ocaml-modules/irmin/pack.nix index 4eacc719cec0..c374b1a22750 100644 --- a/pkgs/development/ocaml-modules/irmin/pack.nix +++ b/pkgs/development/ocaml-modules/irmin/pack.nix @@ -1,12 +1,13 @@ -{ lib, buildDunePackage, alcotest-lwt, index, irmin, irmin-test }: +{ lib, buildDunePackage, alcotest-lwt, index, irmin, irmin-test, ocaml_lwt }: buildDunePackage rec { + minimumOCamlVersion = "4.02.3"; pname = "irmin-pack"; inherit (irmin) version src; - propagatedBuildInputs = [ index irmin ]; + propagatedBuildInputs = [ index irmin ocaml_lwt ]; checkInputs = lib.optionals doCheck [ alcotest-lwt irmin-test ]; diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix new file mode 100644 index 000000000000..c28532b49a9e --- /dev/null +++ b/pkgs/development/ocaml-modules/irmin/ppx.nix @@ -0,0 +1,14 @@ +{ lib, buildDunePackage, ppxlib, ocaml-syntax-shims, irmin }: + +buildDunePackage { + pname = "ppx_irmin"; + + inherit (irmin) version src minimumOCamlVersion; + + buildInputs = [ ocaml-syntax-shims ]; + propagatedBuildInputs = [ ppxlib ]; + + meta = irmin.meta // { + description = "PPX deriver for Irmin generics"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix b/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix new file mode 100644 index 000000000000..706dc913e1e6 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildDunePackage, fetchurl }: + +buildDunePackage rec { + minimumOCamlVersion = "4.02.3"; + + pname = "ocaml-syntax-shims"; + version = "1.0.0"; + + src = fetchurl { + url = "https://github.com/ocaml-ppx/${pname}/releases/download/${version}/${pname}-${version}.tbz"; + sha256 = "1j7848khli4p7j8i2kmnvhdnhcwhy3zgdpf5ds5ic30ax69y3cl9"; + }; + + useDune2 = true; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = "https://github.com/ocaml-ppx/ocaml-syntax-shims"; + description = "Backport new syntax to older OCaml versions"; + license = licenses.mit; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index d3f02912f531..bef843ed32a6 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -645,6 +645,8 @@ let ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { }; + ocaml-syntax-shims = callPackage ../development/ocaml-modules/ocaml-syntax-shims { }; + syslog = callPackage ../development/ocaml-modules/syslog { }; ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { }; @@ -822,6 +824,10 @@ let ppx_import = callPackage ../development/ocaml-modules/ppx_import {}; + ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix { + ppxlib = ppxlib.override { version = "0.12.0"; }; + }; + ppx_sqlexpr = callPackage ../development/ocaml-modules/sqlexpr/ppx.nix {}; ppx_tools =