diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix index d450a877517..531378c19a4 100644 --- a/pkgs/development/ocaml-modules/lwt/default.nix +++ b/pkgs/development/ocaml-modules/lwt/default.nix @@ -2,36 +2,38 @@ , ocaml_react, ocaml_ssl, libev, pkgconfig, ncurses, ocaml_oasis, glib , ppx_tools, result, cppo , ppxSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02" +, version ? if stdenv.lib.versionAtLeast ocaml.version "4.02" then "2.7.1" else "2.6.0" }: -let param = - if stdenv.lib.versionAtLeast ocaml.version "4.02" - then { - version = "2.7.1"; - sha256 = "0w7f59havrl2fsnvs84lm7wlqpsrldg80gy5afpnpr21zkw22g8w"; - } else { - version = "2.6.0"; - sha256 = "0f1h83zh60rspm4fxd96z9h5bkhq1n1q968hgq92sq4a6bfi1c2w"; - }; -in +let sha256 = { + "3.0.0" = "0wwhnl9hppixcsdisinj1wmffx0nv6hkpm01z9qvkngkrazi3i88"; + "2.7.1" = "0w7f59havrl2fsnvs84lm7wlqpsrldg80gy5afpnpr21zkw22g8w"; + "2.6.0" = "0f1h83zh60rspm4fxd96z9h5bkhq1n1q968hgq92sq4a6bfi1c2w"; +}."${version}"; in + +let optionals = stdenv.lib.optionals (!stdenv.lib.versionAtLeast version "3"); in buildOcaml rec { name = "lwt"; - inherit (param) version; + inherit version; src = fetchzip { url = "https://github.com/ocsigen/lwt/archive/${version}.tar.gz"; - inherit (param) sha256; + inherit sha256; }; buildInputs = [ ocaml_oasis pkgconfig which cryptopp ocaml findlib ocamlbuild glib ncurses camlp4 cppo ] ++ stdenv.lib.optional ppxSupport ppx_tools; - propagatedBuildInputs = [ result ocaml_react ocaml_ssl libev ]; + propagatedBuildInputs = [ result ] + ++ optionals [ ocaml_react ocaml_ssl ] + ++ [ libev ]; configureScript = "ocaml setup.ml -configure"; prefixKey = "--prefix "; - configureFlags = [ "--enable-glib" "--enable-ssl" "--enable-react" "--enable-camlp4" ] + configureFlags = + optionals [ "--enable-glib" "--enable-ssl" "--enable-react" ] + ++ [ "--enable-camlp4" ] ++ [ (if ppxSupport then "--enable-ppx" else "--disable-ppx") ]; createFindlibDestdir = true; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index c27dd65beeb..6b8fc96bf88 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -302,6 +302,12 @@ let lwt = ocaml_lwt; }; + lwt3 = if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/lwt { + version = "3.0.0"; + } + else throw "lwt3 is not available for OCaml ${ocaml.version}"; + macaque = callPackage ../development/ocaml-modules/macaque { }; magic-mime = callPackage ../development/ocaml-modules/magic-mime { };