about summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules')
-rw-r--r--pkgs/development/ocaml-modules/angstrom/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/bigstringaf/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/estring/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/httpaf/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/janestreet/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/labltk/default.nix57
-rw-r--r--pkgs/development/ocaml-modules/sqlexpr/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/sqlexpr/ppx.nix15
8 files changed, 173 insertions, 16 deletions
diff --git a/pkgs/development/ocaml-modules/angstrom/default.nix b/pkgs/development/ocaml-modules/angstrom/default.nix
index 154b4890e4fc..97baca62e724 100644
--- a/pkgs/development/ocaml-modules/angstrom/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, alcotest, result }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, alcotest, result
+, bigstringaf
+}:
 
 if !stdenv.lib.versionAtLeast ocaml.version "4.03"
 then throw "angstrom is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  version = "0.8.1";
+  version = "0.10.0";
   name = "ocaml${ocaml.version}-angstrom-${version}";
 
   src = fetchFromGitHub {
     owner  = "inhabitedtype";
     repo   = "angstrom";
     rev    = "${version}";
-    sha256 = "067r3vy5lac1bfx947gy722amna3dbcak54nlh24vx87pmcq31qc";
+    sha256 = "0lh6024yf9ds0nh9i93r9m6p5psi8nvrqxl5x7jwl13zb0r9xfpw";
   };
 
   buildInputs = [ ocaml findlib jbuilder alcotest ];
-  propagatedBuildInputs = [ result ];
+  propagatedBuildInputs = [ bigstringaf result ];
 
   buildPhase = "jbuilder build -p angstrom";
 
diff --git a/pkgs/development/ocaml-modules/bigstringaf/default.nix b/pkgs/development/ocaml-modules/bigstringaf/default.nix
new file mode 100644
index 000000000000..21a0e3943923
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bigstringaf/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, alcotest }:
+
+if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+then throw "bigstringaf is not available for OCaml ${ocaml.version}"
+else
+
+stdenv.mkDerivation rec {
+  version = "0.3.0";
+  name = "ocaml${ocaml.version}-bigstringaf-${version}";
+
+  src = fetchFromGitHub {
+    owner = "inhabitedtype";
+    repo = "bigstringaf";
+    rev = version;
+    sha256 = "1yx6hv8rk0ldz1h6kk00rwg8abpfc376z00aifl9f5rn7xavpscs";
+  };
+
+  buildInputs = [ ocaml findlib jbuilder alcotest ];
+
+  doCheck = true;
+  checkPhase = "dune runtest";
+
+  inherit (jbuilder) installPhase;
+
+  meta = {
+    description = "Bigstring intrinsics and fast blits based on memcpy/memmove";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/estring/default.nix b/pkgs/development/ocaml-modules/estring/default.nix
index c0c8eb51f71f..9f04dac343c4 100644
--- a/pkgs/development/ocaml-modules/estring/default.nix
+++ b/pkgs/development/ocaml-modules/estring/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, buildOcaml, fetchurl }:
+{ stdenv, buildOcaml, ocaml, fetchurl }:
+
+if stdenv.lib.versionAtLeast ocaml.version "4.06"
+then throw "estring is not available for OCaml ${ocaml.version}"
+else
 
 buildOcaml rec {
   name = "estring";
diff --git a/pkgs/development/ocaml-modules/httpaf/default.nix b/pkgs/development/ocaml-modules/httpaf/default.nix
new file mode 100644
index 000000000000..bb712d40827e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/httpaf/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder
+, angstrom, faraday, alcotest
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.4.1";
+  name = "ocaml${ocaml.version}-httpaf-${version}";
+
+  src = fetchFromGitHub {
+    owner = "inhabitedtype";
+    repo = "httpaf";
+    rev = version;
+    sha256 = "0i2r004ihj00hd97475y8nhjqjln58xx087zcjl0dfp0n7q80517";
+  };
+
+  buildInputs = [ ocaml findlib jbuilder alcotest ];
+  propagatedBuildInputs = [ angstrom faraday ];
+
+  buildPhase = "dune build -p httpaf";
+
+  doCheck = true;
+  checkPhase = "dune runtest -p httpaf";
+
+  inherit (jbuilder) installPhase;
+
+  meta = {
+    description = "A high-performance, memory-efficient, and scalable web server for OCaml";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/default.nix b/pkgs/development/ocaml-modules/janestreet/default.nix
index a05d49245b25..7db07e77d84e 100644
--- a/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -33,8 +33,9 @@ rec {
   };
 
   base = janePackage {
+    version = "0.11.1";
     name = "base";
-    hash = "0ad5xcyds2lwy9dk7gqwygxk5y769ckrgrjcykdalwdh8qfbi6nf";
+    hash = "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir";
     propagatedBuildInputs = [ sexplib0 ];
     meta.description = "Full standard library replacement for OCaml";
   };
diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix
new file mode 100644
index 000000000000..10555771feef
--- /dev/null
+++ b/pkgs/development/ocaml-modules/labltk/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, ocaml, findlib, tcl, tk }:
+
+let param = {
+  "4.04" = {
+    version = "8.06.2";
+    key = "1628";
+    sha256 = "1p97j9s33axkb4yyl0byhmhlyczqarb886ajpyggizy2br3a0bmk";
+  };
+  "4.05" = {
+    version = "8.06.3";
+    key = "1701";
+    sha256 = "1rka9jpg3kxqn7dmgfsa7pmsdwm16x7cn4sh15ijyyrad9phgdxn";
+  };
+  "4.06" = {
+    version = "8.06.4";
+    key = "1727";
+    sha256 = "0j3rz0zz4r993wa3ssnk5s416b1jhj58l6z2jk8238a86y7xqcii";
+  };
+  "4.07" = {
+    version = "8.06.5";
+    key = "1764";
+    sha256 = "0wgx65y1wkgf22ihpqmspqfp95fqbj3pldhp1p3b1mi8rmc37zwj";
+  };
+}."${builtins.substring 0 4 ocaml.version}";
+in
+
+stdenv.mkDerivation rec {
+  inherit (param) version;
+  name = "ocaml${ocaml.version}-labltk-${version}";
+
+  src = fetchurl {
+    url = "https://forge.ocamlcore.org/frs/download.php/${param.key}/labltk-${param.version}.tar.gz";
+    inherit (param) sha256;
+  };
+
+  buildInputs = [ ocaml findlib tcl tk ];
+
+  configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ];
+  dontAddPrefix = true;
+
+  buildFlags = [ "all" "opt" ];
+
+  createFindlibDestdir = true;
+
+  postInstall = ''
+    mkdir -p $OCAMLFIND_DESTDIR/stublibs
+    mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/
+  '';
+
+  meta = {
+    description = "OCaml interface to Tcl/Tk, including OCaml library explorer OCamlBrowser";
+    homepage = "http://labltk.forge.ocamlcore.org/";
+    license = stdenv.lib.licenses.lgpl21;
+    inherit (ocaml.meta) platforms;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/sqlexpr/default.nix b/pkgs/development/ocaml-modules/sqlexpr/default.nix
index 363d5850ec60..c7ed72dc523c 100644
--- a/pkgs/development/ocaml-modules/sqlexpr/default.nix
+++ b/pkgs/development/ocaml-modules/sqlexpr/default.nix
@@ -1,19 +1,32 @@
-{ stdenv, buildOcaml, fetchurl, batteries, csv, ocaml_lwt, ocaml_sqlite3, estring }:
+{ stdenv, fetchurl, ocaml, findlib, jbuilder, ocaml_lwt
+, lwt_ppx, ocaml-migrate-parsetree, ppx_tools_versioned, csv, ocaml_sqlite3
+}:
 
-buildOcaml rec {
-  name = "sqlexpr";
-  version = "0.5.5";
+stdenv.mkDerivation rec {
+  version = "0.9.0";
+  name = "ocaml${ocaml.version}-sqlexpr-${version}";
 
   src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1203/ocaml-sqlexpr-${version}.tar.gz";
-    sha256 = "02pi0xxr3xzalwpvcaq96k57wz2vxj20l2mga1a4d2ddvhran8kr";
+  url = "https://github.com/mfp/ocaml-sqlexpr/releases/download/${version}/ocaml-sqlexpr-${version}.tar.gz";
+  sha256 = "0z0bkzi1mh0m39alzr2ds7hjpfxffx6azpfsj2wpaxrg64ks8ypd";
   };
 
-  propagatedBuildInputs = [ batteries csv ocaml_lwt ocaml_sqlite3 estring ];
+  buildInputs = [ ocaml findlib jbuilder lwt_ppx ocaml-migrate-parsetree ppx_tools_versioned ];
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mfp/ocaml-sqlexpr;
+  propagatedBuildInputs = [ ocaml_lwt csv ocaml_sqlite3 ];
+
+  buildPhase = "dune build -p sqlexpr";
+
+  doCheck = true;
+  checkPhase = "dune runtest -p sqlexpr";
+
+  inherit (jbuilder) installPhase;
+
+  meta = {
     description = "Type-safe, convenient SQLite database access";
-    license = licenses.lgpl21;
+    homepage = "https://github.com/mfp/ocaml-sqlexpr";
+    license = stdenv.lib.licenses.lgpl21;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/sqlexpr/ppx.nix b/pkgs/development/ocaml-modules/sqlexpr/ppx.nix
new file mode 100644
index 000000000000..c15378e8240a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sqlexpr/ppx.nix
@@ -0,0 +1,15 @@
+{ stdenv, ocaml, findlib, jbuilder, sqlexpr, ounit
+, ppx_core, ppx_tools_versioned, re, lwt_ppx
+}:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-ppx_sqlexpr-${version}";
+  inherit (sqlexpr) version src installPhase meta;
+
+  buildInputs = [ ocaml findlib jbuilder sqlexpr ounit ppx_core ppx_tools_versioned re lwt_ppx ];
+
+  buildPhase = "dune build -p ppx_sqlexpr";
+
+  doCheck = true;
+  checkPhase = "dune runtest -p ppx_sqlexpr";
+}