diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix index 264df776e46..e2d2a2c5dc9 100644 --- a/pkgs/development/ocaml-modules/elpi/default.nix +++ b/pkgs/development/ocaml-modules/elpi/default.nix @@ -17,9 +17,9 @@ buildDunePackage rec { minimumOCamlVersion = "4.04"; - buildInputs = [ perl ncurses ppxlib ]; + buildInputs = [ perl ncurses ]; - propagatedBuildInputs = [ camlp5 ppx_deriving re ]; + propagatedBuildInputs = [ camlp5 ppxlib ppx_deriving re ]; meta = { description = "Embeddable λProlog Interpreter"; diff --git a/pkgs/development/ocaml-modules/jingoo/default.nix b/pkgs/development/ocaml-modules/jingoo/default.nix index ec25e8e7f41..cc2c65009ff 100644 --- a/pkgs/development/ocaml-modules/jingoo/default.nix +++ b/pkgs/development/ocaml-modules/jingoo/default.nix @@ -1,5 +1,5 @@ { lib, buildDunePackage, fetchFromGitHub -, menhir, ppx_deriving, re, uutf, uucp, ounit2 }: +, menhir, ppxlib, ppx_deriving, re, uutf, uucp, ounit2 }: buildDunePackage rec { pname = "jingoo"; @@ -17,7 +17,7 @@ buildDunePackage rec { }; buildInputs = [ menhir ]; - propagatedBuildInputs = [ ppx_deriving re uutf uucp ]; + propagatedBuildInputs = [ ppxlib ppx_deriving re uutf uucp ]; checkInputs = [ ounit2 ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/jwto/default.nix b/pkgs/development/ocaml-modules/jwto/default.nix index 1c7622f2805..3950c13d3fc 100644 --- a/pkgs/development/ocaml-modules/jwto/default.nix +++ b/pkgs/development/ocaml-modules/jwto/default.nix @@ -1,4 +1,5 @@ { lib, buildDunePackage, fetchFromGitHub, alcotest, cryptokit, fmt, yojson +, ppxlib , base64, re, ppx_deriving }: buildDunePackage rec { @@ -16,6 +17,8 @@ buildDunePackage rec { sha256 = "1p799zk8j9c0002xzi2x7ndj1bzqf14744ampcqndrjnsi7mq71s"; }; + buildInputs = [ ppxlib ]; + propagatedBuildInputs = [ cryptokit fmt yojson base64 re ppx_deriving ]; diff --git a/pkgs/development/ocaml-modules/lens/default.nix b/pkgs/development/ocaml-modules/lens/default.nix index 73548021688..8910a873812 100644 --- a/pkgs/development/ocaml-modules/lens/default.nix +++ b/pkgs/development/ocaml-modules/lens/default.nix @@ -24,5 +24,6 @@ buildDunePackage rec { maintainers = with maintainers; [ kazcw ]; + broken = true; # Not compatible with ppx_deriving ≥ 5.0 }; } diff --git a/pkgs/development/ocaml-modules/mirage-nat/default.nix b/pkgs/development/ocaml-modules/mirage-nat/default.nix index 5edf8a347ad..b04c0bb4a7c 100644 --- a/pkgs/development/ocaml-modules/mirage-nat/default.nix +++ b/pkgs/development/ocaml-modules/mirage-nat/default.nix @@ -2,7 +2,7 @@ , ipaddr, cstruct, lwt, rresult, logs, lru , tcpip, ethernet, stdlib-shims , alcotest, mirage-clock-unix -, ppx_deriving +, ppxlib, ppx_deriving }: buildDunePackage rec { @@ -19,8 +19,8 @@ buildDunePackage rec { sha256 = "0cy95j184hi8fm1h6z6x1brjfrmbq3zjy2mqz99m8ys9vwkb63ma"; }; - nativeBuildInputs = [ - ppx_deriving + buildInputs = [ + ppxlib ]; propagatedBuildInputs = [ @@ -33,6 +33,7 @@ buildDunePackage rec { tcpip ethernet stdlib-shims + ppx_deriving ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/nocrypto/default.nix b/pkgs/development/ocaml-modules/nocrypto/default.nix index ae52ed478e0..055e6db3a64 100644 --- a/pkgs/development/ocaml-modules/nocrypto/default.nix +++ b/pkgs/development/ocaml-modules/nocrypto/default.nix @@ -15,6 +15,10 @@ let ''; in +if !versionAtLeast ocaml.version "4.08" +then throw "nocrypto is not available for OCaml ${ocaml.version}" +else + stdenv.mkDerivation rec { name = "ocaml${ocaml.version}-nocrypto-${version}"; version = "0.5.4"; diff --git a/pkgs/development/ocaml-modules/pgocaml/default.nix b/pkgs/development/ocaml-modules/pgocaml/default.nix index d0dcb5b489f..f67d614af3a 100644 --- a/pkgs/development/ocaml-modules/pgocaml/default.nix +++ b/pkgs/development/ocaml-modules/pgocaml/default.nix @@ -12,7 +12,7 @@ buildDunePackage rec { sha256 = "1rdypc83nap9j2ml9r6n1pzgf79gk1yffwyi6fmcrl7zmy01cg0n"; }; - minimumOCamlVersion = "4.07"; + minimumOCamlVersion = "4.08"; useDune2 = true; propagatedBuildInputs = [ calendar csv hex ppx_deriving ppx_sexp_conv re rresult sexplib ]; diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix index 37a3a55229d..910e5390096 100644 --- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix +++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix @@ -1,20 +1,34 @@ -{ lib, fetchzip, buildDunePackage -, cppo, ppxfind, ppx_tools, ppx_derivers, result, ounit, ocaml-migrate-parsetree +{ lib, fetchurl, buildDunePackage +, cppo, ppxlib, ppx_derivers, result, ounit, ocaml-migrate-parsetree }: +let params = + if lib.versionAtLeast ppxlib.version "0.15" + then { + version = "5.1"; + sha256 = "1i64fd7qrfzbam5hfbl01r0sx4iihsahcwqj13smmrjlnwi3nkxh"; + } else { + version = "5.0"; + sha256 = "0fkzrn4pdyvf1kl0nwvhqidq01pnq3ql8zk1jd56hb0cxaw851w3"; + } +; in + buildDunePackage rec { pname = "ppx_deriving"; - version = "4.5"; + inherit (params) version; - src = fetchzip { - url = "https://github.com/ocaml-ppx/ppx_deriving/archive/v${version}.tar.gz"; - sha256 = "1v2xldag54n0xk69vv3j4nln9bzkkpq3rildq118sydzsc9v239z"; + useDune2 = true; + + src = fetchurl { + url = "https://github.com/ocaml-ppx/ppx_deriving/releases/download/v${version}/ppx_deriving-v${version}.tbz"; + inherit (params) sha256; }; - buildInputs = [ ppxfind cppo ounit ]; - propagatedBuildInputs = [ ocaml-migrate-parsetree ppx_derivers ppx_tools result ]; + buildInputs = [ ppxlib cppo ]; + propagatedBuildInputs = [ ocaml-migrate-parsetree ppx_derivers result ]; doCheck = true; + checkInputs = [ ounit ]; meta = with lib; { description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02."; diff --git a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix index f85e32d72c7..7828f2172ab 100644 --- a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix +++ b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix @@ -23,5 +23,6 @@ buildDunePackage rec { description = "A Protocol Buffers codec generator for OCaml"; license = licenses.mit; maintainers = [ maintainers.vyorkin ]; + broken = true; }; } diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix index 9af2c6edb32..bef60b3f381 100644 --- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix +++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix @@ -1,25 +1,26 @@ -{ lib, buildDunePackage, fetchFromGitHub, ppxfind, ounit +{ lib, buildDunePackage, fetchFromGitHub, ppxlib, ounit , ppx_deriving, yojson }: buildDunePackage rec { pname = "ppx_deriving_yojson"; - version = "3.5.3"; + version = "3.6.1"; - minimumOCamlVersion = "4.04"; + useDune2 = true; + + minimumOCamlVersion = "4.07"; src = fetchFromGitHub { owner = "ocaml-ppx"; repo = "ppx_deriving_yojson"; rev = "v${version}"; - sha256 = "030638gp39mr4hkilrjhd98q4s8gjqxifm6fy6bwqrg74hmrl2y5"; + sha256 = "1icz5h6p3pfj7my5gi7wxpflrb8c902dqa17f9w424njilnpyrbk"; }; - buildInputs = [ ppxfind ounit ]; - - propagatedBuildInputs = [ ppx_deriving yojson ]; + propagatedBuildInputs = [ ppxlib ppx_deriving yojson ]; doCheck = true; + checkInputs = [ ounit ]; meta = { description = "A Yojson codec generator for OCaml >= 4.04"; diff --git a/pkgs/development/ocaml-modules/visitors/default.nix b/pkgs/development/ocaml-modules/visitors/default.nix index c8d9436461a..bda50bdb78e 100644 --- a/pkgs/development/ocaml-modules/visitors/default.nix +++ b/pkgs/development/ocaml-modules/visitors/default.nix @@ -1,24 +1,22 @@ -{ lib, buildDunePackage, fetchFromGitLab, ppx_tools, ppx_deriving, result, cppo }: +{ lib, buildDunePackage, fetchFromGitLab, ppxlib, ppx_deriving, result }: buildDunePackage rec { pname = "visitors"; - version = "20200210"; + version = "20210127"; useDune2 = true; - minimumOCamlVersion = "4.02.3"; + minimumOCamlVersion = "4.07"; src = fetchFromGitLab { owner = "fpottier"; repo = pname; rev = version; domain = "gitlab.inria.fr"; - sha256 = "12i099h1hc1walabiwqbinnpgcxkc1wn72913v7v6vvyif21rb5a"; + sha256 = "0b73h7d4yv04a0b5x2i222jknbcgf9vvxzfjxzy2jwanxz9d873z"; }; - buildInputs = [ cppo ]; - - propagatedBuildInputs = [ ppx_tools ppx_deriving result ]; + propagatedBuildInputs = [ ppxlib ppx_deriving result ]; meta = with lib; { homepage = "https://gitlab.inria.fr/fpottier/visitors"; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 7531e8bc0a0..f7c57305992 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -979,10 +979,7 @@ let ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {}; - ppx_deriving = - if lib.versionAtLeast ocaml.version "4.02" - then callPackage ../development/ocaml-modules/ppx_deriving {} - else null; + ppx_deriving = callPackage ../development/ocaml-modules/ppx_deriving {}; ppx_deriving_protobuf = callPackage ../development/ocaml-modules/ppx_deriving_protobuf {};