diff options
Diffstat (limited to 'nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix new file mode 100644 index 000000000000..3ac6027b22fd --- /dev/null +++ b/nixpkgs/pkgs/development/ocaml-modules/mariadb/default.nix @@ -0,0 +1,49 @@ +{ 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; + }; +} |