about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ocaml-modules/pgocaml/default.nix
blob: 76b97103d667ef546acd031922c91557cd5f6c6a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, ocaml
, calendar, camlp-streams, csv, hex, ppx_deriving, ppx_sexp_conv, re, rresult, sexplib
}:

let with-camlp-streams = lib.optional (lib.versionAtLeast ocaml.version "5.0"); in

buildDunePackage rec {
  pname = "pgocaml";
  version = "4.3.0";
  src = fetchFromGitHub {
    owner = "darioteixeira";
    repo = "pgocaml";
    rev = version;
    hash = "sha256-W1fbRnU1l61qqxfVY2qiBnVpGD81xrBO8k0tWr+RXMY=";
  };

  # Compatibility with OCaml ≥ 5.0
  patches = with-camlp-streams (fetchpatch {
    url = "https://github.com/darioteixeira/pgocaml/commit/906a289dc57da4971e312c31eedd26d81e902ed5.patch";
    hash = "sha256-/v9Jheg98GhrcD2gcsQpPvq7YiIrvJj22SKvrBRlR9Y=";
  });

  minimalOCamlVersion = "4.08";

  propagatedBuildInputs = [ calendar csv hex ppx_deriving ppx_sexp_conv re rresult sexplib ]
  ++ with-camlp-streams camlp-streams;

  meta = with lib; {
    description = "An interface to PostgreSQL databases for OCaml applications";
    inherit (src.meta) homepage;
    license = licenses.lgpl2;
    maintainers = with maintainers; [ vbgl ];
  };
}