77 lines
1.8 KiB
Nix
77 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
fetchurl,
|
|
stdenv,
|
|
fetchpatch,
|
|
ocaml,
|
|
findlib,
|
|
ocamlbuild,
|
|
camlp-streams,
|
|
ctypes,
|
|
mariadb,
|
|
libmysqlclient,
|
|
}:
|
|
|
|
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07")
|
|
"mariadb is not available for OCaml ${ocaml.version}"
|
|
|
|
stdenv.mkDerivation
|
|
rec {
|
|
pname = "ocaml${ocaml.version}-mariadb";
|
|
version = "1.1.6";
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/andrenth/ocaml-mariadb/releases/download/${version}/ocaml-mariadb-${version}.tar.gz";
|
|
sha256 = "sha256-3/C1Gz6luUzS7oaudLlDHMT6JB2v5OdbLVzJhtayHGM=";
|
|
};
|
|
|
|
patches =
|
|
lib.lists.map
|
|
(
|
|
x:
|
|
fetchpatch {
|
|
url = "https://github.com/andrenth/ocaml-mariadb/commit/${x.path}.patch";
|
|
inherit (x) hash;
|
|
}
|
|
)
|
|
[
|
|
{
|
|
path = "9db2e4d8dec7c584213d0e0f03d079a36a35d9d5";
|
|
hash = "sha256-heROtU02cYBJ5edIHMdYP1xNXcLv8h79GYGBuudJhgE=";
|
|
}
|
|
{
|
|
path = "40cd3102bc7cce4ed826ed609464daeb1bbb4581";
|
|
hash = "sha256-YVsAMJiOgWRk9xPaRz2sDihBYLlXv+rhWtQIMOVLtSg=";
|
|
}
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace setup.ml --replace '#use "topfind"' \
|
|
'#directory "${findlib}/lib/ocaml/${ocaml.version}/site-lib/";; #use "topfind"'
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
ocaml
|
|
findlib
|
|
ocamlbuild
|
|
];
|
|
buildInputs = [
|
|
mariadb
|
|
libmysqlclient
|
|
camlp-streams
|
|
ocamlbuild
|
|
];
|
|
propagatedBuildInputs = [ ctypes ];
|
|
|
|
strictDeps = true;
|
|
|
|
preInstall = "mkdir -p $OCAMLFIND_DESTDIR/stublibs";
|
|
|
|
meta = {
|
|
description = "OCaml bindings for MariaDB";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ bcc32 ];
|
|
homepage = "https://github.com/andrenth/ocaml-mariadb";
|
|
inherit (ocaml.meta) platforms;
|
|
};
|
|
}
|