diff --git a/lib/maintainers.nix b/lib/maintainers.nix index bbd89c74eb7d..ec3d6b84dd6f 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -72,6 +72,7 @@ eikek = "Eike Kettner "; ellis = "Ellis Whitehead "; emery = "Emery Hemingway "; + ericbmerritt = "Eric Merritt "; ertes = "Ertugrul Söylemez "; exlevan = "Alexey Levan "; falsifian = "James Cook "; @@ -112,6 +113,7 @@ joelteon = "Joel Taylor "; jpbernardy = "Jean-Philippe Bernardy "; jwiegley = "John Wiegley "; + jwilberding = "Jordan Wilberding "; jzellner = "Jeff Zellner "; kkallio = "Karn Kallio "; koral = "Koral "; diff --git a/pkgs/build-support/ocaml/default.nix b/pkgs/build-support/ocaml/default.nix new file mode 100644 index 000000000000..87bfa6cea120 --- /dev/null +++ b/pkgs/build-support/ocaml/default.nix @@ -0,0 +1,36 @@ +{ stdenv, writeText, ocaml, findlib, camlp4 }: + +{ name, version, buildInputs ? [], + createFindlibDestdir ? true, + dontStrip ? true, + minimumSupportedOcamlVersion ? null, + hasSharedObjects ? false, + setupHook ? null, + meta ? {}, ... +}@args: +let + ocaml_version = (builtins.parseDrvName ocaml.name).version; + defaultMeta = { + platforms = ocaml.meta.platforms; + }; +in + assert minimumSupportedOcamlVersion != null -> + stdenv.lib.versionOlder minimumSupportedOcamlVersion ocaml_version; + +stdenv.mkDerivation (args // { + name = "ocaml-${name}-${version}"; + + buildInputs = [ ocaml findlib camlp4 ] ++ buildInputs; + + setupHook = if setupHook == null && hasSharedObjects + then writeText "setupHook.sh" '' + export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml_version}/site-lib/${name}/" + '' + else setupHook; + + inherit ocaml_version; + inherit createFindlibDestdir; + inherit dontStrip; + + meta = defaultMeta // meta; +}) diff --git a/pkgs/development/ocaml-modules/alcotest/default.nix b/pkgs/development/ocaml-modules/alcotest/default.nix new file mode 100644 index 000000000000..68edfca25a8a --- /dev/null +++ b/pkgs/development/ocaml-modules/alcotest/default.nix @@ -0,0 +1,20 @@ +{stdenv, buildOcaml, fetchurl, ounit, re, cmdliner}: + +buildOcaml rec { + name = "alcotest"; + version = "0.3.1"; + + src = fetchurl { + url = "https://github.com/samoht/alcotest/archive/${version}.tar.gz"; + sha256 = "a0e6c9a33c59b206ecc949655fa6e17bdd1078c8b610b14d8f6f0f1b489b0b43"; + }; + + propagatedBuildInputs = [ ounit re cmdliner ]; + + meta = with stdenv.lib; { + homepage = https://github.com/samoht/alcotest; + description = "A lightweight and colourful test framework"; + license = stdenv.lib.licenses.isc; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async/default.nix b/pkgs/development/ocaml-modules/async/default.nix new file mode 100644 index 000000000000..2b84519036c7 --- /dev/null +++ b/pkgs/development/ocaml-modules/async/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, async_kernel, + async_unix, async_extra, pa_ounit}: + +buildOcaml rec { + name = "async"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async/archive/${version}.tar.gz"; + sha256 = "ecc4ca939ab098e689332921b110dbaacd06d9f8d8bf697023dfff3ca37dc1e9"; + }; + + propagatedBuildInputs = [ async_kernel async_unix async_extra pa_ounit ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async; + description = "Jane Street Capital's asynchronous execution library"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_extra/default.nix b/pkgs/development/ocaml-modules/async_extra/default.nix new file mode 100644 index 000000000000..2d1e1dea69cc --- /dev/null +++ b/pkgs/development/ocaml-modules/async_extra/default.nix @@ -0,0 +1,26 @@ +{stdenv, buildOcaml, fetchurl, async_kernel, async_unix, + bin_prot, core, custom_printf, fieldslib, herelib, pa_ounit, + pipebang, pa_test, sexplib}: + +buildOcaml rec { + name = "async_extra"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_extra/archive/${version}.tar.gz"; + sha256 = "51f6f67a9ad56fe5dcf09faeeca6ec2fea53a7a975a72bc80504b90841212e28"; + }; + + buildInputs = [ pa_test pa_ounit ]; + propagatedBuildInputs = [ async_kernel async_unix core bin_prot custom_printf + fieldslib herelib pipebang sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_extra; + description = "Jane Street Capital's asynchronous execution library (extra)"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_find/default.nix b/pkgs/development/ocaml-modules/async_find/default.nix new file mode 100644 index 000000000000..ae10e931ce25 --- /dev/null +++ b/pkgs/development/ocaml-modules/async_find/default.nix @@ -0,0 +1,22 @@ +{stdenv, buildOcaml, fetchurl, async, core, sexplib}: + +buildOcaml rec { + name = "async_find"; + version = "111.28.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_find/archive/${version}.tar.gz"; + sha256 = "4e3fda72f50174f05d96a5a09323f236c041b1a685890c155822956f3deb8803"; + }; + + propagatedBuildInputs = [ async core sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_find; + description = "Directory traversal with Async"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_kernel/default.nix b/pkgs/development/ocaml-modules/async_kernel/default.nix new file mode 100644 index 000000000000..8c0d8d7c851e --- /dev/null +++ b/pkgs/development/ocaml-modules/async_kernel/default.nix @@ -0,0 +1,25 @@ +{stdenv, buildOcaml, fetchurl, core_kernel, + bin_prot, fieldslib, pa_ounit, pa_test, + sexplib, herelib}: + +buildOcaml rec { + name = "async_kernel"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_kernel/archive/${version}.tar.gz"; + sha256 = "95caf4249b55c5a6b38da56e314845e9ea9a0876eedd4cf0ddcb6c8dd660c6a0"; + }; + + buildInputs = [ pa_test pa_ounit ]; + propagatedBuildInputs = [ core_kernel bin_prot fieldslib herelib sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_kernel; + description = "Jane Street Capital's asynchronous execution library (core) "; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_shell/default.nix b/pkgs/development/ocaml-modules/async_shell/default.nix new file mode 100644 index 000000000000..75755833a5f5 --- /dev/null +++ b/pkgs/development/ocaml-modules/async_shell/default.nix @@ -0,0 +1,22 @@ +{stdenv, buildOcaml, fetchurl, async, core, core_extended}: + +buildOcaml rec { + name = "async_shell"; + version = "109.28.03"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_shell/archive/${version}.tar.gz"; + sha256 = "0b4497bea9124c5a665ee58fb0a73c5cbf2f757479df902e6870627196e6c105"; + }; + + propagatedBuildInputs = [ async core core_extended ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_shell; + description = "Shell helpers for Async"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_ssl/default.nix b/pkgs/development/ocaml-modules/async_ssl/default.nix new file mode 100644 index 000000000000..527d56ceaa01 --- /dev/null +++ b/pkgs/development/ocaml-modules/async_ssl/default.nix @@ -0,0 +1,25 @@ +{stdenv, buildOcaml, fetchurl, async, comparelib, core, ctypes, openssl, + fieldslib, herelib, pa_bench, pa_ounit, pipebang, pa_test, sexplib}: + +buildOcaml rec { + name = "async_ssl"; + version = "112.24.03"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_ssl/archive/${version}.tar.gz"; + sha256 = "1b0bea92142eef11da6bf649bbe229bd4b8d9cc807303d8142406908c0d28c68"; + }; + + buildInputs = [ pa_bench pa_test ]; + propagatedBuildInputs = [ ctypes async comparelib core fieldslib pa_ounit + herelib pipebang sexplib openssl ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_ssl; + description = "Async wrappers for ssl"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/async_unix/default.nix b/pkgs/development/ocaml-modules/async_unix/default.nix new file mode 100644 index 000000000000..81fbd6a99182 --- /dev/null +++ b/pkgs/development/ocaml-modules/async_unix/default.nix @@ -0,0 +1,27 @@ +{stdenv, buildOcaml, fetchurl, async_kernel, + bin_prot, comparelib, core, fieldslib, herelib, pa_ounit, + pipebang, pa_test, sexplib}: + +buildOcaml rec { + name = "async_unix"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/async_unix/archive/${version}.tar.gz"; + sha256 = "d490b1dc42f0987a131fa9695b55f215ad90cdaffbfac35b7f9f88f3834337ab"; + }; + + hasSharedObjects = true; + buildInputs = [ pa_ounit ]; + propagatedBuildInputs = [ async_kernel core bin_prot comparelib + fieldslib herelib pipebang pa_test sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/async_unix; + description = "Jane Street Capital's asynchronous execution library (unix)"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/atd/default.nix b/pkgs/development/ocaml-modules/atd/default.nix new file mode 100644 index 000000000000..c7f8bc3d10f7 --- /dev/null +++ b/pkgs/development/ocaml-modules/atd/default.nix @@ -0,0 +1,26 @@ +{stdenv, menhir, easy-format, buildOcaml, fetchurl, which}: + +buildOcaml rec { + name = "atd"; + version = "1.1.2"; + + src = fetchurl { + url = "https://github.com/mjambon/atd/archive/v${version}.tar.gz"; + sha256 = "0ef10c63192aed75e9a4274e89c5f9ca27efb1ef230d9949eda53ad4a9a37291"; + }; + + installPhase = '' + mkdir -p $out/bin + make PREFIX=$out install + ''; + + buildInputs = [ which ]; + propagatedBuildInputs = [ menhir easy-format ]; + + meta = with stdenv.lib; { + homepage = https://github.com/mjambon/atd; + description = "Syntax for cross-language type definitions"; + license = licenses.bsd3; + maintainers = [ maintainers.jwilberding ]; + }; +} diff --git a/pkgs/development/ocaml-modules/atdgen/default.nix b/pkgs/development/ocaml-modules/atdgen/default.nix new file mode 100644 index 000000000000..bab2541fd744 --- /dev/null +++ b/pkgs/development/ocaml-modules/atdgen/default.nix @@ -0,0 +1,25 @@ +{stdenv, atd, yojson, menhir, easy-format, biniou, cppo, buildOcaml, fetchurl, which}: + +buildOcaml rec { + name = "atdgen"; + version = "1.6.0"; + + src = fetchurl { + url = "https://github.com/mjambon/atdgen/archive/v${version}.tar.gz"; + sha256 = "1icdxgb7qqq1pcbfqi0ikryiwaljd594z3acyci8g3bnlq0yc7zn"; + }; + + installPhase = '' + mkdir -p $out/bin + make PREFIX=$out install + ''; + + buildInputs = [ which atd biniou yojson ]; + + meta = with stdenv.lib; { + homepage = https://github.com/mjambon/atdgen; + description = "Generates optimized boilerplate OCaml code for JSON and Biniou IO from type definitions"; + license = licenses.bsd3; + maintainers = [ maintainers.jwilberding ]; + }; +} diff --git a/pkgs/development/ocaml-modules/bin_prot/default.nix b/pkgs/development/ocaml-modules/bin_prot/default.nix new file mode 100644 index 000000000000..4a2b9846271b --- /dev/null +++ b/pkgs/development/ocaml-modules/bin_prot/default.nix @@ -0,0 +1,24 @@ +{stdenv, writeText, buildOcaml, fetchurl, type_conv}: + +buildOcaml rec { + name = "bin_prot"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/bin_prot/archive/${version}.tar.gz"; + sha256 = "dc0c978a825c7c123990af3317637c218f61079e6f35dc878260651084f1adb4"; + }; + + propagatedBuildInputs = [ type_conv ]; + + hasSharedObjects = true; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/bin_prot; + description = "Binary protocol generator "; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix new file mode 100644 index 000000000000..e219b59de5de --- /dev/null +++ b/pkgs/development/ocaml-modules/cohttp/default.nix @@ -0,0 +1,29 @@ +{stdenv, buildOcaml, fetchurl, cmdliner, re, uri, fieldslib, sexplib, conduit, + stringext, base64, magic-mime, ounit, alcotest, lwt ? null, + async ? null, async_ssl ? null}: + +buildOcaml rec { + name = "cohttp"; + version = "0.17.1"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/mirage/ocaml-cohttp/archive/v${version}.tar.gz"; + sha256 = "fb124fb2fb5ff2e74559bf380627f6a537e208c1518ddcb01f0d37b62b55f673"; + }; + + buildInputs = [ alcotest ]; + propagatedBuildInputs = [ cmdliner re uri fieldslib sexplib sexplib + conduit stringext base64 magic-mime ounit async + async_ssl lwt ]; + + buildFlags = "PREFIX=$(out)"; + + meta = with stdenv.lib; { + homepage = https://github.com/mirage/ocaml-cohttp; + description = "Very lightweight HTTP server using Lwt or Async"; + license = licenses.mit; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/comparelib/default.nix b/pkgs/development/ocaml-modules/comparelib/default.nix new file mode 100644 index 000000000000..950012158142 --- /dev/null +++ b/pkgs/development/ocaml-modules/comparelib/default.nix @@ -0,0 +1,22 @@ +{stdenv, buildOcaml, fetchurl, type_conv}: + +buildOcaml rec { + name = "comparelib"; + version = "109.60.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/comparelib/archive/${version}.tar.gz"; + sha256 = "1075fb05e0d1e290f71ad0f6163f32b2cb4cebdc77568491c7eb38ba91f5db7e"; + }; + + propagatedBuildInputs = [ type_conv ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/comparelib; + description = "Syntax extension for deriving \"compare\" functions automatically"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix new file mode 100644 index 000000000000..dbb83f4c8cf0 --- /dev/null +++ b/pkgs/development/ocaml-modules/conduit/default.nix @@ -0,0 +1,24 @@ +{stdenv, buildOcaml, fetchurl, sexplib, stringext, uri, cstruct, ipaddr, + async ? null, async_ssl ? null, lwt ? null}: + +buildOcaml rec { + name = "conduit"; + version = "0.8.3"; + + src = fetchurl { + url = "https://github.com/mirage/ocaml-conduit/archive/v${version}.tar.gz"; + sha256 = "5cf1a46aa0254345e5143feebe6b54bdef96314e9987f44e69f24618d620faa1"; + }; + + propagatedBuildInputs = ([ sexplib stringext uri cstruct ipaddr ] + ++ stdenv.lib.optional (lwt != null) lwt + ++ stdenv.lib.optional (async != null) async + ++ stdenv.lib.optional (async_ssl != null) async_ssl); + + meta = with stdenv.lib; { + homepage = https://github.com/mirage/ocaml-conduit; + description = "Resolve URIs into communication channels for Async or Lwt "; + license = licenses.mit; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/core/default.nix b/pkgs/development/ocaml-modules/core/default.nix new file mode 100644 index 000000000000..96fd80087d66 --- /dev/null +++ b/pkgs/development/ocaml-modules/core/default.nix @@ -0,0 +1,30 @@ +{stdenv, buildOcaml, fetchurl, type_conv, + core_kernel, bin_prot, comparelib, custom_printf, enumerate, + fieldslib, herelib, pa_bench, pa_test, pa_ounit, + pipebang, sexplib, typerep, variantslib}: + +buildOcaml rec { + name = "core"; + version = "112.24.01"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/core/archive/${version}.tar.gz"; + sha256 = "be5d53ebd4fd04ef23ebf9b3b2840c7aeced6bc4cc6cd3f5e89f71c9949000f4"; + }; + + hasSharedObjects = true; + + buildInputs = [ pa_bench pa_test pa_ounit ]; + propagatedBuildInputs = [ type_conv core_kernel bin_prot comparelib + custom_printf enumerate fieldslib herelib + pipebang sexplib typerep variantslib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/core; + description = "Jane Street Capital's standard library overlay"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/core_extended/default.nix b/pkgs/development/ocaml-modules/core_extended/default.nix new file mode 100644 index 000000000000..f311aae3d304 --- /dev/null +++ b/pkgs/development/ocaml-modules/core_extended/default.nix @@ -0,0 +1,26 @@ +{stdenv, buildOcaml, fetchurl, bin_prot, comparelib, core, custom_printf, + fieldslib, pa_bench, pa_ounit, pipebang, pa_test, textutils, re2, sexplib}: + +buildOcaml rec { + name = "core_extended"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/core_extended/archive/${version}.tar.gz"; + sha256 = "f87b0661b6c2cfb545ec61d1cb2ab1b9c4967b6ac14e651de41d3a6fb7f0f1e3"; + }; + + hasSharedObjects = true; + buildInputs = [ pa_bench pa_test pa_ounit ]; + propagatedBuildInputs = [bin_prot comparelib core custom_printf fieldslib + pipebang textutils re2 sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/core_extended; + description = "Jane Street Capital's standard library overlay"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/core_kernel/default.nix b/pkgs/development/ocaml-modules/core_kernel/default.nix new file mode 100644 index 000000000000..0fed12b195d6 --- /dev/null +++ b/pkgs/development/ocaml-modules/core_kernel/default.nix @@ -0,0 +1,30 @@ +{stdenv, buildOcaml, fetchurl, type_conv, + bin_prot, comparelib, custom_printf, enumerate, + fieldslib, herelib, pa_bench, pa_test, pa_ounit, + pipebang, sexplib, typerep, variantslib}: + +buildOcaml rec { + name = "core_kernel"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/core_kernel/archive/${version}.tar.gz"; + sha256 = "93e1f21e35ade98a2bfbe45ba76eef4a8ad3fed97cdc0769f96e0fcc86d6a761"; + }; + + hasSharedObjects = true; + + buildInputs = [ pa_test pa_ounit ]; + propagatedBuildInputs = [ type_conv pa_bench bin_prot comparelib custom_printf + enumerate fieldslib herelib pipebang sexplib + typerep variantslib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/core_kernel; + description = "Jane Street Capital's standard library overlay (kernel)"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix index 194a852e7ef9..d62b9397a733 100644 --- a/pkgs/development/ocaml-modules/cstruct/default.nix +++ b/pkgs/development/ocaml-modules/cstruct/default.nix @@ -1,27 +1,31 @@ -{ stdenv, fetchzip, ocaml, findlib, sexplib, ocplib-endian, lwt, camlp4 }: +{stdenv, writeText, fetchurl, ocaml, ocplib-endian, sexplib, findlib, + async ? null, lwt ? null, camlp4}: -let version = "1.6.0"; in +let + ocaml_version = (builtins.parseDrvName ocaml.name).version; +in stdenv.mkDerivation { - name = "ocaml-cstruct-${version}"; + name = "ocaml-cstruct-1.6.0"; - src = fetchzip { - url = "https://github.com/mirage/ocaml-cstruct/archive/v${version}.tar.gz"; - sha256 = "09qw3rhfiq2kkns6660p9cwm5610k72md52a04cy91gr6gsig6ic"; + src = fetchurl { + url = https://github.com/mirage/ocaml-cstruct/archive/v1.6.0.tar.gz; + sha256 = "0f90a1b7a03091cf22a3ccb11a0cce03b6500f064ad3766b5ed81418ac008ece"; }; - buildInputs = [ ocaml findlib lwt camlp4 ]; - propagatedBuildInputs = [ ocplib-endian sexplib ]; - - configureFlags = "--enable-lwt"; + configureFlags = stdenv.lib.strings.concatStringsSep " " ((if lwt != null then ["--enable-lwt"] else []) ++ + (if async != null then ["--enable-async"] else [])); + buildInputs = [ocaml findlib camlp4]; + propagatedBuildInputs = [ocplib-endian sexplib lwt async]; createFindlibDestdir = true; + dontStrip = true; - meta = { - description = "Map OCaml arrays onto C-like structs"; + meta = with stdenv.lib; { homepage = https://github.com/mirage/ocaml-cstruct; + description = "Map OCaml arrays onto C-like structs"; license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ vbgl ]; + maintainers = [ maintainers.vbgl maintainers.ericbmerritt ]; platforms = ocaml.meta.platforms; }; } diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix new file mode 100644 index 000000000000..43c7ddbb2904 --- /dev/null +++ b/pkgs/development/ocaml-modules/ctypes/default.nix @@ -0,0 +1,32 @@ +{stdenv, buildOcaml, fetchurl, libffi, pkgconfig, ncurses}: + +buildOcaml rec { + name = "ctypes"; + version = "0.4.1"; + + src = fetchurl { + url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz"; + sha256 = "74564e049de5d3c0e76ea284c225cb658ac1a2b483345be1efb9be4b3c1702f5"; + }; + + buildInputs = [ ncurses pkgconfig ]; + propagatedBuildInputs = [ libffi ]; + + hasSharedObjects = true; + + buildPhase = '' + make XEN=false libffi.config ctypes-base ctypes-stubs + make XEN=false ctypes-foreign + ''; + + installPhase = '' + make install XEN=false + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/ocamllabs/ocaml-ctypes; + description = "Library for binding to C libraries using pure OCaml"; + license = licenses.mit; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/custom_printf/default.nix b/pkgs/development/ocaml-modules/custom_printf/default.nix new file mode 100644 index 000000000000..05a8ecfe616b --- /dev/null +++ b/pkgs/development/ocaml-modules/custom_printf/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, type_conv, sexplib, pa_ounit}: + +buildOcaml rec { + name = "custom_printf"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/custom_printf/archive/${version}.tar.gz"; + sha256 = "dad3aface92c53e8fbcc12cc9358c4767cb1cb09857d4819a10ed98eccaca8f9"; + }; + + buildInputs = [ pa_ounit ]; + propagatedBuildInputs = [ type_conv sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/custom_printf; + description = "Syntax extension for printf format strings"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix index 9700a1d8cc5e..54644d836994 100644 --- a/pkgs/development/ocaml-modules/eliom/default.nix +++ b/pkgs/development/ocaml-modules/eliom/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving, js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml, - ocaml_ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp, + ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp, reactivedata, opam}: stdenv.mkDerivation rec @@ -17,7 +17,7 @@ stdenv.mkDerivation rec buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving js_of_ocaml ocaml_optcomp opam]; - propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ocaml_ipaddr + propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ipaddr calendar cryptokit ocamlnet ocaml_react ocaml_ssl ocaml_pcre ]; diff --git a/pkgs/development/ocaml-modules/fieldslib/default.nix b/pkgs/development/ocaml-modules/fieldslib/default.nix index 28b83d3af46f..385487903290 100644 --- a/pkgs/development/ocaml-modules/fieldslib/default.nix +++ b/pkgs/development/ocaml-modules/fieldslib/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ocaml, findlib, ocaml_typeconv, camlp4 }: +{ stdenv, fetchurl, ocaml, findlib, type_conv, camlp4 }: assert stdenv.lib.versionOlder "4.00" (stdenv.lib.getVersion ocaml); @@ -11,7 +11,7 @@ stdenv.mkDerivation { }; buildInputs = [ ocaml findlib ]; - propagatedBuildInputs = [ ocaml_typeconv camlp4 ]; + propagatedBuildInputs = [ type_conv camlp4 ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/herelib/default.nix b/pkgs/development/ocaml-modules/herelib/default.nix new file mode 100644 index 000000000000..fd955602844e --- /dev/null +++ b/pkgs/development/ocaml-modules/herelib/default.nix @@ -0,0 +1,20 @@ +{stdenv, buildOcaml, fetchurl}: + +buildOcaml rec { + version = "109.35.02"; + name = "herelib"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/herelib/archive/${version}.tar.gz"; + sha256 = "7f8394169cb63f6d41e91c9affa1b8ec240d5f6e9dfeda3fbb611df521d4b05a"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/herelib; + description = "Syntax extension for inserting the current location"; + license = stdenv.lib.licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix new file mode 100644 index 000000000000..749b6a1d94e3 --- /dev/null +++ b/pkgs/development/ocaml-modules/ipaddr/default.nix @@ -0,0 +1,32 @@ +{stdenv, buildOcaml, fetchurl, sexplib}: + +buildOcaml rec { + name = "ipaddr"; + version = "2.6.1"; + + src = fetchurl { + url = "https://github.com/mirage/ocaml-ipaddr/archive/${version}.tar.gz"; + sha256 = "7051013d8f58abff433187d70cd7ddd7a6b49a6fbe6cad1893f571f65b8ed3d0"; + }; + + propagatedBuildInputs = [ sexplib ]; + + configurePhase = '' + ocaml setup.ml -configure --prefix $out + ''; + + buildPhase = '' + make build + ''; + + installPhase = '' + make install + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/mirage/ocaml-ipaddr; + description = "A library for manipulation of IP (and MAC) address representations "; + license = licenses.mit; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/jingoo/default.nix b/pkgs/development/ocaml-modules/jingoo/default.nix new file mode 100644 index 000000000000..4f42f51c16e6 --- /dev/null +++ b/pkgs/development/ocaml-modules/jingoo/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, batteries, pcre}: + +buildOcaml rec { + name = "jingoo"; + version = "1.2.7"; + + src = fetchurl { + url = "https://github.com/tategakibunko/jingoo/archive/v${version}.tar.gz"; + sha256 = "8ffc5723d77b323a12761981d048c046af77db47543a4b1076573aa5f4003009"; + }; + + propagatedBuildInputs = [ batteries pcre ]; + + preInstall = "mkdir -p $out/bin"; + installFlags = "BINDIR=$(out)/bin"; + + meta = with stdenv.lib; { + homepage = https://github.com/tategakibunko/jingoo; + description = "OCaml template engine almost compatible with jinja2"; + license = licenses.mit; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix index 20acb75d931a..0c81775f2365 100644 --- a/pkgs/development/ocaml-modules/lwt/default.nix +++ b/pkgs/development/ocaml-modules/lwt/default.nix @@ -16,9 +16,9 @@ stdenv.mkDerivation { sha256 = "0idci0zadpb8hmblszsrvg6yf36w5a9y6rsdwjc3jww71dgrw5d9"; }; - buildInputs = [ocaml_oasis pkgconfig which cryptopp ocaml findlib glib libev ncurses camlp4]; + buildInputs = [ocaml_oasis pkgconfig which cryptopp ocaml findlib glib ncurses camlp4]; - propagatedBuildInputs = [ ocaml_react ocaml_ssl ocaml_text ]; + propagatedBuildInputs = [ ocaml_react ocaml_ssl ocaml_text libev ]; configureFlags = [ "--enable-react" "--enable-glib" "--enable-ssl" "--enable-text" "--disable-ppx" ] ++ optional (versionAtLeast ocaml_version "4.0" && ! versionAtLeast ocaml_version "4.02") "--enable-toplevel"; diff --git a/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix b/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix deleted file mode 100644 index 09cfe1c350dd..000000000000 --- a/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ocaml, findlib, stdenv, fetchurl, ocaml_sexplib}: -assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.12"; -stdenv.mkDerivation { - name = "ocaml-ipaddr-2.5.0"; - - src = fetchurl { - url = https://github.com/mirage/ocaml-ipaddr/archive/2.5.0.tar.gz; - sha256 = "0zpslxzjs5zdw20j3jaf6fr0w2imnidhrzggmnvwp198r76aq917"; - }; - - buildInputs = [ocaml findlib]; - propagatedBuildInputs = [ocaml_sexplib]; - - createFindlibDestdir = true; - - meta = with stdenv.lib; { - description = "An OCaml library for manipulation of IP (and MAC) address representations"; - license = licenses.isc; - maintainers = [ maintainers.vbgl ]; - platforms = ocaml.meta.platforms; - }; - -} diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix index d5c066ae2aa0..58d8b047ec1d 100644 --- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix +++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix @@ -1,17 +1,17 @@ {stdenv, fetchurl, ocaml, findlib, which, ocaml_react, ocaml_ssl, -ocaml_lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ocaml_ipaddr, zlib, +ocaml_lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ipaddr, zlib, libev, openssl, ocaml_sqlite3, tree, uutf}: stdenv.mkDerivation { name = "ocsigenserver-2.5"; - + src = fetchurl { url = https://github.com/ocsigen/ocsigenserver/archive/2.5.tar.gz; sha256 = "0ayzlzjwg199va4sclsldlcp0dnwdj45ahhg9ckb51m28c2pw46r"; }; buildInputs = [ocaml which findlib ocaml_react ocaml_ssl ocaml_lwt - ocamlnet ocaml_pcre cryptokit tyxml ocaml_ipaddr zlib libev openssl + ocamlnet ocaml_pcre cryptokit tyxml ipaddr zlib libev openssl ocaml_sqlite3 tree uutf]; configureFlags = "--root $(out) --prefix /"; @@ -20,7 +20,7 @@ stdenv.mkDerivation { createFindlibDestdir = true; - postFixup = + postFixup = '' rm -rf $out/var/run ''; diff --git a/pkgs/development/ocaml-modules/odn/default.nix b/pkgs/development/ocaml-modules/odn/default.nix index bfffb67d4b0e..eaeb7e7b22f7 100644 --- a/pkgs/development/ocaml-modules/odn/default.nix +++ b/pkgs/development/ocaml-modules/odn/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ocaml, findlib, ocaml_typeconv, ounit, camlp4}: +{stdenv, fetchurl, ocaml, findlib, type_conv, ounit, camlp4}: stdenv.mkDerivation { name = "ocaml-data-notation-0.0.11"; @@ -8,7 +8,7 @@ stdenv.mkDerivation { sha256 = "09a8zdyifpc2nl4hdvg9206142y31cq95ajgij011s1qcg3z93lj"; }; - buildInputs = [ocaml findlib ocaml_typeconv ounit camlp4]; + buildInputs = [ocaml findlib type_conv ounit camlp4]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/pa_bench/default.nix b/pkgs/development/ocaml-modules/pa_bench/default.nix new file mode 100644 index 000000000000..d8ce0dbc7eac --- /dev/null +++ b/pkgs/development/ocaml-modules/pa_bench/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, type_conv, pa_ounit}: + +buildOcaml rec { + name = "pa_bench"; + version = "112.06.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/pa_bench/archive/${version}.tar.gz"; + sha256 = "e3401e37f1d3d4acb957fd46a192d0ffcefeb0bedee63bbeb26969af1d540870"; + }; + + buildInputs = [ pa_ounit ]; + propagatedBuildInputs = [ type_conv ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/pa_bench; + description = "Syntax extension for inline benchmarks"; + license = stdenv.lib.licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/pa_ounit/default.nix b/pkgs/development/ocaml-modules/pa_ounit/default.nix new file mode 100644 index 000000000000..5970aba1e502 --- /dev/null +++ b/pkgs/development/ocaml-modules/pa_ounit/default.nix @@ -0,0 +1,20 @@ +{stdenv, buildOcaml, fetchurl, ounit}: + +buildOcaml rec { + name = "pa_ounit"; + version = "112.24.00"; + + src = fetchurl { + url = "https://github.com/janestreet/pa_ounit/archive/${version}.tar.gz"; + sha256 = "fa04e72fe1db41e6dc64f9707cf5705cb9b957aa93265120c875c808eb9b9b96"; + }; + + propagatedBuildInputs = [ ounit ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/pa_ounit; + description = "OCaml inline testing"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/pa_test/default.nix b/pkgs/development/ocaml-modules/pa_test/default.nix new file mode 100644 index 000000000000..faf17e20dc1e --- /dev/null +++ b/pkgs/development/ocaml-modules/pa_test/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, type_conv, pa_ounit, sexplib, herelib}: + +buildOcaml rec { + name = "pa_test"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/pa_test/archive/${version}.tar.gz"; + sha256 = "b03d13c2bc9fa9a4b1c507d7108d965202160f83e9781d430d3b53a1993e30d6"; + }; + + buildInputs = [ pa_ounit ]; + propagatedBuildInputs = [ type_conv sexplib herelib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/pa_test; + description = "Syntax to reduce boiler plate in testing"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/pipebang/default.nix b/pkgs/development/ocaml-modules/pipebang/default.nix new file mode 100644 index 000000000000..fa9a9f8f86a6 --- /dev/null +++ b/pkgs/development/ocaml-modules/pipebang/default.nix @@ -0,0 +1,20 @@ +{stdenv, buildOcaml, fetchurl}: + +buildOcaml rec { + name = "pipebang"; + version = "110.01.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/pipebang/archive/${version}.tar.gz"; + sha256 = "a8858d9607c15cdf0a775196be060c8d91de724fc80a347d7a76ef1d38329096"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/pipebang; + description = "Syntax extension to transform x |! f into f x"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/re2/Makefile.patch b/pkgs/development/ocaml-modules/re2/Makefile.patch new file mode 100644 index 000000000000..fcb6eefe62b2 --- /dev/null +++ b/pkgs/development/ocaml-modules/re2/Makefile.patch @@ -0,0 +1,17 @@ +--- ./lib/Makefile 2014-11-18 08:16:19.000000000 -0800 ++++ ./lib/Makefile 2015-05-23 14:48:31.000000000 -0700 +@@ -6,12 +6,12 @@ + all: libre2_stubs.a dllre2_stubs.so + + dllre2_stubs.so libre2_stubs.a: stubs.o $(LIBRE2) +- ocamlmklib -oc re2_stubs stubs.o $(LIBRE2) -lstdc++ ++ ocamlmklib -oc re2_stubs stubs.o $(LIBRE2) -lc++ + rm libre2_stubs.a # ocamlmklib just includes $(LIBRE2) inside the stubs archive + cp $(LIBRE2) libre2_stubs.a && ar r libre2_stubs.a stubs.o + + stubs.o: stubs.cpp stubs.h util.h enum_x_macro.h +- g++ -O2 -DPIC -fPIC -g -pipe -DCAML_NAME_SPACE -Wall -I. -I../../../include \ ++ $(CXX) -O2 -DPIC -fPIC -g -pipe -DCAML_NAME_SPACE -Wall -I. -I../../../include \ + -I$(RE2_HOME) -I$(ocaml-version-selected-include-path) -c stubs.cpp + + #stubs.o: %.o: %.cpp %.h diff --git a/pkgs/development/ocaml-modules/re2/default.nix b/pkgs/development/ocaml-modules/re2/default.nix new file mode 100644 index 000000000000..e89e28fe1e55 --- /dev/null +++ b/pkgs/development/ocaml-modules/re2/default.nix @@ -0,0 +1,29 @@ +{stdenv, buildOcaml, fetchurl, ocaml, core, pa_ounit, pa_test, + bin_prot, comparelib, sexplib, rsync}: + +buildOcaml rec { + name = "re2"; + version = "112.06.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/re2/archive/${version}.tar.gz"; + sha256 = "a538765872363fcb67f12b95c07455a0afd68f5ae9008b59bb85a996d97cc752"; + }; + patches = if stdenv.isDarwin + then [./Makefile.patch ./myocamlbuild.patch] + else null; + + buildInputs = [ pa_ounit pa_test rsync ]; + propagatedBuildInputs = [ core bin_prot comparelib sexplib ]; + + hasSharedObjects = true; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/re2; + description = "OCaml bindings for RE2"; + license = stdenv.lib.licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/re2/myocamlbuild.patch b/pkgs/development/ocaml-modules/re2/myocamlbuild.patch new file mode 100644 index 000000000000..46ad6fa801b8 --- /dev/null +++ b/pkgs/development/ocaml-modules/re2/myocamlbuild.patch @@ -0,0 +1,24 @@ +--- ./myocamlbuild.ml 2015-05-23 14:35:18.000000000 -0700 ++++ ./myocamlbuild.ml 2015-05-23 15:05:24.000000000 -0700 +@@ -626,16 +626,18 @@ + rule "Generate lib/options.ml" + ~prod:"lib/options.ml" + ~deps:["lib/options.mlp"; "lib/enum_x_macro.h"] +- (fun _ _ -> Cmd (S[A"gcc"; A"-E"; A"-P"; A"-x"; A"c"; ++ (fun _ _ -> Cmd (S[A"cc"; A"-E"; A"-P"; A"-x"; A"c"; + P"lib/options.mlp"; A"-o"; P"lib/options.ml"])); + + flag ["ocaml"; "link"; "library"; "native"] (S[A"-cclib"; A"-Llib"; + A"-cclib"; A"-lre2_stubs"; +- A"-cclib"; A"-lstdc++"]); ++ A"-ccopt"; A"--stdlib=libc++"; ++ A"-cclib"; A"-lc++"]); + flag ["ocaml"; "link"; "library"; "byte"] (S[A"-dllib"; A"dllre2_stubs.so"; + A"-cclib"; A"-Llib"; + A"-cclib"; A"-lre2_stubs"; +- A"-cclib"; A"-lstdc++"]); ++ A"-ccopt"; A"--stdlib=libc++"; ++ A"-cclib"; A"-lc++"]); + | _ -> + () + diff --git a/pkgs/development/ocaml-modules/sexplib/108.08.00.nix b/pkgs/development/ocaml-modules/sexplib/108.08.00.nix index bde9c2713715..dd9e89bcef70 100644 --- a/pkgs/development/ocaml-modules/sexplib/108.08.00.nix +++ b/pkgs/development/ocaml-modules/sexplib/108.08.00.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ocaml, findlib, typeconv, camlp4}: +{stdenv, fetchurl, ocaml, findlib, type_conv, camlp4}: let ocaml_version = (builtins.parseDrvName ocaml.name).version; @@ -15,7 +15,7 @@ stdenv.mkDerivation { }; buildInputs = [ocaml findlib]; - propagatedBuildInputs = [typeconv camlp4]; + propagatedBuildInputs = [type_conv camlp4]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/sexplib/default.nix b/pkgs/development/ocaml-modules/sexplib/111.25.00.nix similarity index 75% rename from pkgs/development/ocaml-modules/sexplib/default.nix rename to pkgs/development/ocaml-modules/sexplib/111.25.00.nix index a32c6a0e2ce6..61d46e205fa6 100644 --- a/pkgs/development/ocaml-modules/sexplib/default.nix +++ b/pkgs/development/ocaml-modules/sexplib/111.25.00.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ocaml, findlib, ocaml_typeconv, camlp4}: +{stdenv, fetchurl, ocaml, findlib, type_conv, camlp4}: let ocaml_version = (builtins.parseDrvName ocaml.name).version; @@ -7,7 +7,7 @@ in assert stdenv.lib.versionOlder "4.00" ocaml_version; stdenv.mkDerivation { - name = "ocaml-sexplib-111.25.0"; + name = "ocaml-sexplib-111.25.00"; src = fetchurl { url = https://ocaml.janestreet.com/ocaml-core/111.25.00/individual/sexplib-111.25.00.tar.gz; @@ -15,7 +15,7 @@ stdenv.mkDerivation { }; buildInputs = [ocaml findlib]; - propagatedBuildInputs = [ocaml_typeconv camlp4]; + propagatedBuildInputs = [type_conv camlp4]; createFindlibDestdir = true; @@ -23,7 +23,7 @@ stdenv.mkDerivation { homepage = https://ocaml.janestreet.com/; description = "Library for serializing OCaml values to and from S-expressions"; license = licenses.asl20; - maintainers = [ maintainers.vbgl ]; + maintainers = [ maintainers.vbgl maintainers.ericbmerritt ]; platforms = ocaml.meta.platforms; }; } diff --git a/pkgs/development/ocaml-modules/sexplib/112.24.01.nix b/pkgs/development/ocaml-modules/sexplib/112.24.01.nix new file mode 100644 index 000000000000..b63b5af05e82 --- /dev/null +++ b/pkgs/development/ocaml-modules/sexplib/112.24.01.nix @@ -0,0 +1,21 @@ +{stdenv, buildOcaml, fetchurl, type_conv, camlp4}: + +buildOcaml rec { + minimumSupportedOcamlVersion = "4.02"; + name = "sexplib"; + version = "112.24.01"; + + src = fetchurl { + url = "https://github.com/janestreet/sexplib/archive/${version}.tar.gz"; + sha256 = "5f776aee295cc51c952aecd4b74b52dd2b850c665cc25b3d69bc42014d3ba073"; + }; + + propagatedBuildInputs = [ type_conv camlp4 ]; + + meta = with stdenv.lib; { + homepage = https://ocaml.janestreet.com/; + description = "Library for serializing OCaml values to and from S-expressions"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/textutils/default.nix b/pkgs/development/ocaml-modules/textutils/default.nix new file mode 100644 index 000000000000..377b94eff8b8 --- /dev/null +++ b/pkgs/development/ocaml-modules/textutils/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, core, pa_ounit, pa_test, sexplib}: + +buildOcaml rec { + name = "textutils"; + version = "112.17.00"; + + minimalSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/janestreet/textutils/archive/${version}.tar.gz"; + sha256 = "605d9fde66dc2d777721c936aa521e17169c143efaf9ff29619a7f273a7d0052"; + }; + + buildInputs = [ pa_test ]; + propagatedBuildInputs = [ core pa_ounit sexplib ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/textutils; + description = ""; + license = stdenv.lib.licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/typeconv/108.08.00.nix b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix similarity index 95% rename from pkgs/development/ocaml-modules/typeconv/108.08.00.nix rename to pkgs/development/ocaml-modules/type_conv/108.08.00.nix index 24daa366b2af..d3e32105f7df 100644 --- a/pkgs/development/ocaml-modules/typeconv/108.08.00.nix +++ b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix @@ -7,7 +7,7 @@ in assert stdenv.lib.versionOlder "3.12" ocaml_version; stdenv.mkDerivation { - name = "ocaml-typeconv-108.08.00"; + name = "ocaml-type_conv-108.08.00"; src = fetchurl { url = https://ocaml.janestreet.com/ocaml-core/108.08.00/individual/type_conv-108.08.00.tar.gz; diff --git a/pkgs/development/ocaml-modules/typeconv/default.nix b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix similarity index 95% rename from pkgs/development/ocaml-modules/typeconv/default.nix rename to pkgs/development/ocaml-modules/type_conv/109.60.01.nix index 359f906ce347..fe42dd5ddcbd 100644 --- a/pkgs/development/ocaml-modules/typeconv/default.nix +++ b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix @@ -7,7 +7,7 @@ in assert stdenv.lib.versionOlder "4.00" ocaml_version; stdenv.mkDerivation { - name = "ocaml-typeconv-109.60.01"; + name = "ocaml-type_conv-109.60.01"; src = fetchurl { url = https://github.com/janestreet/type_conv/archive/109.60.01.tar.gz; diff --git a/pkgs/development/ocaml-modules/type_conv/112.01.01.nix b/pkgs/development/ocaml-modules/type_conv/112.01.01.nix new file mode 100644 index 000000000000..e65306d15018 --- /dev/null +++ b/pkgs/development/ocaml-modules/type_conv/112.01.01.nix @@ -0,0 +1,20 @@ +{stdenv, fetchurl, buildOcaml}: + +buildOcaml rec { + minimumSupportedOcamlVersion = "4.02"; + + name = "type_conv"; + version = "112.01.01"; + + src = fetchurl { + url = "https://github.com/janestreet/type_conv/archive/${version}.tar.gz"; + sha256 = "dbbc33b7ab420e8442d79ba4308ea6c0c16903b310d33525be18841159aa8855"; + }; + + meta = { + homepage = "https://github.com/janestreet/type_conv/"; + description = "Support library for preprocessor type conversions"; + license = stdenv.lib.licenses.asl20; + maintainers = with stdenv.lib.maintainers; [ z77z ericbmerritt ]; + }; +} diff --git a/pkgs/development/ocaml-modules/typerep/default.nix b/pkgs/development/ocaml-modules/typerep/default.nix new file mode 100644 index 000000000000..9500579e2458 --- /dev/null +++ b/pkgs/development/ocaml-modules/typerep/default.nix @@ -0,0 +1,23 @@ +{stdenv, buildOcaml, fetchurl, type_conv}: + +buildOcaml rec { + name = "typerep"; + version = "112.24.00"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/typerep/archive/${version}.tar.gz"; + sha256 = "4f1ab611a00aaf774e9774b26b687233e0c70d91f684415a876f094a9969eada"; + }; + + propagatedBuildInputs = [ type_conv ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/typerep; + description = "Runtime types for OCaml (beta version)"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; + +} diff --git a/pkgs/development/ocaml-modules/variantslib/default.nix b/pkgs/development/ocaml-modules/variantslib/default.nix new file mode 100644 index 000000000000..cb25b844606d --- /dev/null +++ b/pkgs/development/ocaml-modules/variantslib/default.nix @@ -0,0 +1,22 @@ +{stdenv, buildOcaml, fetchurl, type_conv}: + +buildOcaml rec { + name = "variantslib"; + version = "109.15.03"; + + minimumSupportedOcamlVersion = "4.00"; + + src = fetchurl { + url = "https://github.com/janestreet/variantslib/archive/${version}.tar.gz"; + sha256 = "a948dcdd4ca54786fe0646386b6e37a9db03bf276c6557ea374d82740bf18055"; + }; + + propagatedBuildInputs = [ type_conv ]; + + meta = with stdenv.lib; { + homepage = https://github.com/janestreet/variantslib; + description = "OCaml variants as first class values"; + license = licenses.asl20; + maintainers = [ maintainers.ericbmerritt ]; + }; +} diff --git a/pkgs/development/tools/ocaml/oasis/default.nix b/pkgs/development/tools/ocaml/oasis/default.nix index 29507f49c186..e823466f4174 100644 --- a/pkgs/development/tools/ocaml/oasis/default.nix +++ b/pkgs/development/tools/ocaml/oasis/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ocaml, findlib, ocaml_data_notation, ocaml_typeconv, camlp4, +{stdenv, fetchurl, ocaml, findlib, ocaml_data_notation, type_conv, camlp4, ocamlmod, ocamlify, ounit, expect}: stdenv.mkDerivation { @@ -13,7 +13,7 @@ stdenv.mkDerivation { buildInputs = [ - ocaml findlib ocaml_typeconv ocamlmod ocamlify ounit camlp4 + ocaml findlib type_conv ocamlmod ocamlify ounit camlp4 ]; propagatedBuildInputs = [ ocaml_data_notation ]; diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix index 283bd581a130..0d765ec93bbb 100644 --- a/pkgs/development/tools/ocaml/opam/default.nix +++ b/pkgs/development/tools/ocaml/opam/default.nix @@ -38,7 +38,7 @@ let }; opam = fetchurl { url = "https://github.com/ocaml/opam/archive/1.2.2.zip"; - sha256 = "1fxd5axlh9f3jb47y9paa9ld78qwcyp7pv3m60k401ym1dps32jk"; + sha256 = "c590ce55ae69ec74f46215cf16a156a02b23c5f3ecb22f23a3ad9ba3d91ddb6e"; }; }; in stdenv.mkDerivation rec { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 777eb394fb22..16db1ee43d4f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4065,13 +4065,34 @@ let ocaml_version = (builtins.parseDrvName ocaml.name).version; in rec { inherit ocaml; + buildOcaml = callPackage ../build-support/ocaml { }; acgtk = callPackage ../applications/science/logic/acgtk { }; + alcotest = callPackage ../development/ocaml-modules/alcotest {}; + ansiterminal = callPackage ../development/ocaml-modules/ansiterminal { }; asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { }; + async_extra = callPackage ../development/ocaml-modules/async_extra { }; + + async_find = callPackage ../development/ocaml-modules/async_find { }; + + async_kernel = callPackage ../development/ocaml-modules/async_kernel { }; + + async_shell = callPackage ../development/ocaml-modules/async_shell { }; + + async_ssl = callPackage ../development/ocaml-modules/async_ssl { }; + + async_unix = callPackage ../development/ocaml-modules/async_unix { }; + + async = callPackage ../development/ocaml-modules/async { }; + + atd = callPackage ../development/ocaml-modules/atd { }; + + atdgen = callPackage ../development/ocaml-modules/atdgen { }; + base64 = callPackage ../development/ocaml-modules/base64 { }; bolt = callPackage ../development/ocaml-modules/bolt { }; @@ -4123,8 +4144,14 @@ let }; camlimages = camlimages_4_1; + conduit = callPackage ../development/ocaml-modules/conduit { + lwt = ocaml_lwt; + }; + biniou = callPackage ../development/ocaml-modules/biniou { }; + bin_prot = callPackage ../development/ocaml-modules/bin_prot { }; + ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { }; ocaml_cairo2 = callPackage ../development/ocaml-modules/ocaml-cairo2 { }; @@ -4133,6 +4160,10 @@ let cmdliner = callPackage ../development/ocaml-modules/cmdliner { }; + cohttp = callPackage ../development/ocaml-modules/cohttp { + lwt = ocaml_lwt; + }; + config-file = callPackage ../development/ocaml-modules/config-file { }; cpdf = callPackage ../development/ocaml-modules/cpdf { }; @@ -4143,11 +4174,14 @@ let cstruct = callPackage ../development/ocaml-modules/cstruct { lwt = ocaml_lwt; - sexplib = ocaml_sexplib; }; csv = callPackage ../development/ocaml-modules/csv { }; + custom_printf = callPackage ../development/ocaml-modules/custom_printf { }; + + ctypes = callPackage ../development/ocaml-modules/ctypes { }; + deriving = callPackage ../development/tools/ocaml/deriving { }; dolog = callPackage ../development/ocaml-modules/dolog { }; @@ -4158,9 +4192,7 @@ let eliom = callPackage ../development/ocaml-modules/eliom { }; - enumerate = callPackage ../development/ocaml-modules/enumerate { - type_conv = ocaml_typeconv; - }; + enumerate = callPackage ../development/ocaml-modules/enumerate { }; erm_xml = callPackage ../development/ocaml-modules/erm_xml { }; @@ -4168,7 +4200,6 @@ let ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { lwt = ocaml_lwt; - sexplib = ocaml_sexplib; }; fieldslib = callPackage ../development/ocaml-modules/fieldslib { }; @@ -4181,8 +4212,12 @@ let functory = callPackage ../development/ocaml-modules/functory { }; + herelib = callPackage ../development/ocaml-modules/herelib { }; + io-page = callPackage ../development/ocaml-modules/io-page { }; + ipaddr = callPackage ../development/ocaml-modules/ipaddr { }; + javalib = callPackage ../development/ocaml-modules/javalib { extlib = ocaml_extlib_maximal; }; @@ -4201,6 +4236,11 @@ let hex = callPackage ../development/ocaml-modules/hex { }; + jingoo = callPackage ../development/ocaml-modules/jingoo { + batteries = ocaml_batteries; + pcre = ocaml_pcre; + }; + js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { }; jsonm = callPackage ../development/ocaml-modules/jsonm { }; @@ -4247,6 +4287,14 @@ let ocaml_batteries = callPackage ../development/ocaml-modules/batteries { }; + comparelib = callPackage ../development/ocaml-modules/comparelib { }; + + core_extended = callPackage ../development/ocaml-modules/core_extended { }; + + core_kernel = callPackage ../development/ocaml-modules/core_kernel { }; + + core = callPackage ../development/ocaml-modules/core { }; + ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { }; ocaml_data_notation = callPackage ../development/ocaml-modules/odn { }; @@ -4261,8 +4309,6 @@ let ocamlify = callPackage ../development/tools/ocaml/ocamlify { }; - ocaml_ipaddr = callPackage ../development/ocaml-modules/ocaml-ipaddr { }; - ocaml_lwt = callPackage ../development/ocaml-modules/lwt { }; ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { }; @@ -4310,6 +4356,8 @@ let ounit = callPackage ../development/ocaml-modules/ounit { }; + re2 = callPackage ../development/ocaml-modules/re2 { }; + tyxml = callPackage ../development/ocaml-modules/tyxml { }; ulex = callPackage ../development/ocaml-modules/ulex { }; @@ -4318,20 +4366,29 @@ let camlp5 = camlp5_transitional; }; - typeconv_108_08_00 = callPackage ../development/ocaml-modules/typeconv/108.08.00.nix { }; - ocaml_typeconv = - if lib.versionOlder "4.00" ocaml_version - then callPackage ../development/ocaml-modules/typeconv { } + textutils = callPackage ../development/ocaml-modules/textutils { }; + + type_conv_108_08_00 = callPackage ../development/ocaml-modules/type_conv/108.08.00.nix { }; + type_conv_109_60_01 = callPackage ../development/ocaml-modules/type_conv/109.60.01.nix { }; + type_conv_112_01_01 = callPackage ../development/ocaml-modules/type_conv/112.01.01.nix { }; + type_conv = + if lib.versionOlder "4.02" ocaml_version + then type_conv_112_01_01 + else if lib.versionOlder "4.00" ocaml_version + then type_conv_109_60_01 else if lib.versionOlder "3.12" ocaml_version - then typeconv_108_08_00 + then type_conv_108_08_00 else null; - sexplib_108_08_00 = callPackage ../development/ocaml-modules/sexplib/108.08.00.nix { - typeconv = typeconv_108_08_00; - }; - ocaml_sexplib = - if lib.versionOlder "4.00" ocaml_version - then callPackage ../development/ocaml-modules/sexplib { } + sexplib_108_08_00 = callPackage ../development/ocaml-modules/sexplib/108.08.00.nix { }; + sexplib_111_25_00 = callPackage ../development/ocaml-modules/sexplib/111.25.00.nix { }; + sexplib_112_24_01 = callPackage ../development/ocaml-modules/sexplib/112.24.01.nix { }; + + sexplib = + if lib.versionOlder "4.02" ocaml_version + then sexplib_112_24_01 + else if lib.versionOlder "4.00" ocaml_version + then sexplib_111_25_00 else if lib.versionOlder "3.12" ocaml_version then sexplib_108_08_00 else null; @@ -4343,6 +4400,14 @@ let ocurl = callPackage ../development/ocaml-modules/ocurl { }; + pa_ounit = callPackage ../development/ocaml-modules/pa_ounit { }; + + pa_bench = callPackage ../development/ocaml-modules/pa_bench { }; + + pa_test = callPackage ../development/ocaml-modules/pa_test { }; + + pipebang = callPackage ../development/ocaml-modules/pipebang { }; + pprint = callPackage ../development/ocaml-modules/pprint { }; pycaml = callPackage ../development/ocaml-modules/pycaml { }; @@ -4361,6 +4426,8 @@ let twt = callPackage ../development/ocaml-modules/twt { }; + typerep = callPackage ../development/ocaml-modules/typerep { }; + utop = callPackage ../development/tools/ocaml/utop { }; sawja = callPackage ../development/ocaml-modules/sawja { }; @@ -4369,13 +4436,13 @@ let uucp = callPackage ../development/ocaml-modules/uucp { }; uunf = callPackage ../development/ocaml-modules/uunf { }; - uri = callPackage ../development/ocaml-modules/uri { - sexplib = ocaml_sexplib; - }; + uri = callPackage ../development/ocaml-modules/uri { }; uuseg = callPackage ../development/ocaml-modules/uuseg { }; uutf = callPackage ../development/ocaml-modules/uutf { }; + variantslib = callPackage ../development/ocaml-modules/variantslib { }; + vg = callPackage ../development/ocaml-modules/vg { }; xmlm = callPackage ../development/ocaml-modules/xmlm { };