summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/visitors
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules/visitors')
-rw-r--r--pkgs/development/ocaml-modules/visitors/default.nix28
1 files changed, 16 insertions, 12 deletions
diff --git a/pkgs/development/ocaml-modules/visitors/default.nix b/pkgs/development/ocaml-modules/visitors/default.nix
index 35cdfc3a9af..a47cd414fb1 100644
--- a/pkgs/development/ocaml-modules/visitors/default.nix
+++ b/pkgs/development/ocaml-modules/visitors/default.nix
@@ -1,23 +1,27 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, cppo, ppx_tools, ppx_deriving, result }:
+{ lib, buildDunePackage, fetchFromGitLab, ppxlib, ppx_deriving, result }:
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-visitors-20190711";
+buildDunePackage rec {
+  pname = "visitors";
+  version = "20210316";
 
-  src = fetchurl {
-    url = "http://gallium.inria.fr/~fpottier/visitors/visitors-20190711.tar.gz";
-    sha256 = "1h794xczfczf573mpwzm4ah9ir1rbbrkqipbh3aflfpdq2mgsbvg";
-  };
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.08";
 
-  buildInputs = [ ocaml findlib ocamlbuild cppo ];
-  propagatedBuildInputs = [ ppx_tools ppx_deriving result ];
+  src = fetchFromGitLab {
+    owner = "fpottier";
+    repo = pname;
+    rev = version;
+    domain = "gitlab.inria.fr";
+    sha256 = "12d45ncy3g9mpcs6n58aq6yzs5qz662msgcr7ccms9jhiq44m8f7";
+  };
 
-  createFindlibDestdir = true;
+  propagatedBuildInputs = [ ppxlib ppx_deriving result ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://gitlab.inria.fr/fpottier/visitors";
     license = licenses.lgpl21;
     description = "An OCaml syntax extension (technically, a ppx_deriving plugin) which generates object-oriented visitors for traversing and transforming data structures";
-    inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.marsam ];
   };
 }