diff --git a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix index 8d9d3a768209..79c9f37942da 100644 --- a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix @@ -1,7 +1,10 @@ { + lib, + ocaml, buildDunePackage, pbrt, stdlib-shims, + pbrt_services, }: buildDunePackage { @@ -12,7 +15,8 @@ buildDunePackage { buildInputs = [ stdlib-shims ]; propagatedBuildInputs = [ pbrt ]; - doCheck = true; + doCheck = lib.versionAtLeast ocaml.version "5.1"; + checkInputs = [ pbrt_services ]; meta = pbrt.meta // { description = "Protobuf Compiler for OCaml"; diff --git a/pkgs/development/ocaml-modules/pbrt/default.nix b/pkgs/development/ocaml-modules/pbrt/default.nix index 10df7382f287..102916dad809 100644 --- a/pkgs/development/ocaml-modules/pbrt/default.nix +++ b/pkgs/development/ocaml-modules/pbrt/default.nix @@ -6,15 +6,13 @@ buildDunePackage (finalAttrs: { pname = "pbrt"; - version = "2.4"; - - minimalOCamlVersion = "4.03"; + version = "4.1"; src = fetchFromGitHub { owner = "mransan"; repo = "ocaml-protoc"; - rev = "${finalAttrs.version}.0"; - hash = "sha256-EXugdcjALukSjB31zAVG9WiN6GMGXi2jlhHWaZ+p+uM="; + tag = "v${finalAttrs.version}"; + hash = "sha256-UrgrzI5Pgi79C/OhqYxwSNfqsoBULUZ13XVaB71fGes="; }; meta = { diff --git a/pkgs/development/ocaml-modules/pbrt/services.nix b/pkgs/development/ocaml-modules/pbrt/services.nix new file mode 100644 index 000000000000..1d02a4a657ba --- /dev/null +++ b/pkgs/development/ocaml-modules/pbrt/services.nix @@ -0,0 +1,19 @@ +{ + buildDunePackage, + pbrt, + pbrt_yojson, +}: + +buildDunePackage { + pname = "pbrt_services"; + inherit (pbrt) version src; + + propagatedBuildInputs = [ + pbrt + pbrt_yojson + ]; + + meta = pbrt.meta // { + description = "Runtime library for ocaml-protoc to support RPC services"; + }; +} diff --git a/pkgs/development/ocaml-modules/pbrt/yojson.nix b/pkgs/development/ocaml-modules/pbrt/yojson.nix new file mode 100644 index 000000000000..a352408b7503 --- /dev/null +++ b/pkgs/development/ocaml-modules/pbrt/yojson.nix @@ -0,0 +1,21 @@ +{ + buildDunePackage, + pbrt, + base64, + yojson, +}: + +buildDunePackage { + pname = "pbrt_yojson"; + inherit (pbrt) version src; + + propagatedBuildInputs = [ + pbrt + base64 + yojson + ]; + + meta = pbrt.meta // { + description = "Runtime library for ocaml-protoc to support JSON encoding/decoding"; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index a06a161d2c60..7e578f84b7b9 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1713,6 +1713,10 @@ let pbrt = callPackage ../development/ocaml-modules/pbrt { }; + pbrt_services = callPackage ../development/ocaml-modules/pbrt/services.nix { }; + + pbrt_yojson = callPackage ../development/ocaml-modules/pbrt/yojson.nix { }; + pcre2 = callPackage ../development/ocaml-modules/pcre2 { inherit (pkgs) pcre2; };