summaryrefslogtreecommitdiffstats
path: root/pkgs/development/ocaml-modules/cstruct/ppx.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules/cstruct/ppx.nix')
-rw-r--r--pkgs/development/ocaml-modules/cstruct/ppx.nix24
1 files changed, 21 insertions, 3 deletions
diff --git a/pkgs/development/ocaml-modules/cstruct/ppx.nix b/pkgs/development/ocaml-modules/cstruct/ppx.nix
index 44343812090d..aa003295e908 100644
--- a/pkgs/development/ocaml-modules/cstruct/ppx.nix
+++ b/pkgs/development/ocaml-modules/cstruct/ppx.nix
@@ -1,4 +1,7 @@
-{ lib, buildDunePackage, cstruct, sexplib, ppx_tools_versioned, ppxlib }:
+{ lib, buildDunePackage, cstruct, sexplib, ppxlib, stdlib-shims
+, ounit, cppo, ppx_sexp_conv, cstruct-unix, cstruct-sexp
+, fetchpatch
+}:
if !lib.versionAtLeast (cstruct.version or "1") "3"
then cstruct
@@ -8,7 +11,22 @@ buildDunePackage {
pname = "ppx_cstruct";
inherit (cstruct) version src useDune2 meta;
- minimumOCamlVersion = "4.03";
+ minimumOCamlVersion = "4.07";
- propagatedBuildInputs = [ cstruct ppx_tools_versioned ppxlib sexplib ];
+ # prevent ANSI escape sequences from messing up the test cases
+ # https://github.com/mirage/ocaml-cstruct/issues/283
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/mirage/ocaml-cstruct/pull/285/commits/60dfed98b4c34455bf339ac60e2ed5ef05feb48f.patch";
+ sha256 = "1x9i62nrlfy9l44vb0a7qjfrg2wyki4c8nmmqnzwpcbkgxi3q6n5";
+ })
+ ];
+
+ propagatedBuildInputs = [ cstruct ppxlib sexplib stdlib-shims ];
+
+ # disable until ppx_sexp_conv uses ppxlib 0.20.0 (or >= 0.16.0)
+ # since the propagation of the older ppxlib breaks the ppx_cstruct
+ # build.
+ doCheck = false;
+ checkInputs = [ ounit cppo ppx_sexp_conv cstruct-sexp cstruct-unix ];
}