diff --git a/pkgs/development/ocaml-modules/pgx/default.nix b/pkgs/development/ocaml-modules/pgx/default.nix new file mode 100644 index 000000000000..97ae2ff1d30a --- /dev/null +++ b/pkgs/development/ocaml-modules/pgx/default.nix @@ -0,0 +1,45 @@ +{ + alcotest, + buildDunePackage, + camlp-streams, + fetchurl, + hex, + ipaddr, + lib, + ppx_compare, + ppx_custom_printf, + ppx_sexp_conv, + re, + uuidm, +}: + +buildDunePackage (finalAttrs: { + pname = "pgx"; + version = "2.3"; + minimalOCamlVersion = "4.08"; + src = fetchurl { + url = "https://github.com/pgx-ocaml/pgx/archive/refs/tags/${finalAttrs.version}.tar.gz"; + hash = "sha256-Rp9PXsWI4cBc1YHD7uqKATrRt5tgNJowbaAFg1aeVKM="; + }; + + propagatedBuildInputs = [ + camlp-streams + hex + ipaddr + ppx_compare + ppx_custom_printf + ppx_sexp_conv + re + uuidm + ]; + + checkInputs = [ alcotest ]; + doCheck = true; + + meta = { + description = "Pure-OCaml PostgreSQL client library"; + homepage = "https://github.com/pgx-ocaml/pgx"; + license = lib.licenses.lgpl2Only; + maintainers = [ lib.maintainers.vog ]; + }; +}) diff --git a/pkgs/development/ocaml-modules/pgx/eio.nix b/pkgs/development/ocaml-modules/pgx/eio.nix new file mode 100644 index 000000000000..18a0f2126b65 --- /dev/null +++ b/pkgs/development/ocaml-modules/pgx/eio.nix @@ -0,0 +1,29 @@ +{ + alcotest, + base64, + buildDunePackage, + eio, + eio_main, + pgx, +}: + +buildDunePackage (finalAttrs: { + pname = "pgx_eio"; + inherit (pgx) version src; + + propagatedBuildInputs = [ + eio + pgx + ]; + + checkInputs = [ + alcotest + base64 + eio_main + ]; + doCheck = true; + + meta = pgx.meta // { + description = "Pgx using Eio for IO"; + }; +}) diff --git a/pkgs/development/ocaml-modules/pgx/lwt.nix b/pkgs/development/ocaml-modules/pgx/lwt.nix new file mode 100644 index 000000000000..55531389c535 --- /dev/null +++ b/pkgs/development/ocaml-modules/pgx/lwt.nix @@ -0,0 +1,23 @@ +{ + buildDunePackage, + logs, + lwt, + pgx, +}: + +buildDunePackage (finalAttrs: { + pname = "pgx_lwt"; + inherit (pgx) version src; + + propagatedBuildInputs = [ + logs + lwt + pgx + ]; + + doCheck = true; + + meta = pgx.meta // { + description = "Pgx using Lwt for IO"; + }; +}) diff --git a/pkgs/development/ocaml-modules/pgx/lwt_unix.nix b/pkgs/development/ocaml-modules/pgx/lwt_unix.nix new file mode 100644 index 000000000000..b9fdb01d85c5 --- /dev/null +++ b/pkgs/development/ocaml-modules/pgx/lwt_unix.nix @@ -0,0 +1,24 @@ +{ + alcotest-lwt, + base64, + buildDunePackage, + pgx, + pgx_lwt, +}: + +buildDunePackage (finalAttrs: { + pname = "pgx_lwt_unix"; + inherit (pgx) version src; + + propagatedBuildInputs = [ pgx_lwt ]; + + checkInputs = [ + alcotest-lwt + base64 + ]; + doCheck = true; + + meta = pgx.meta // { + description = "Pgx using Lwt and Unix libraries for IO"; + }; +}) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 7900ff21a05e..04d368e4c4c4 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1725,6 +1725,14 @@ let pgsolver = callPackage ../development/ocaml-modules/pgsolver { }; + pgx = callPackage ../development/ocaml-modules/pgx { }; + + pgx_eio = callPackage ../development/ocaml-modules/pgx/eio.nix { }; + + pgx_lwt = callPackage ../development/ocaml-modules/pgx/lwt.nix { }; + + pgx_lwt_unix = callPackage ../development/ocaml-modules/pgx/lwt_unix.nix { }; + phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { }; piaf = callPackage ../development/ocaml-modules/piaf { };