summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/uucp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules/uucp/default.nix')
-rw-r--r--pkgs/development/ocaml-modules/uucp/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
new file mode 100644
index 00000000000..9031087f505
--- /dev/null
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, uunf, uucd }:
+
+let
+  pname = "uucp";
+  version = "14.0.0";
+  webpage = "https://erratique.ch/software/${pname}";
+  minimumOCamlVersion = "4.03";
+  doCheck = true;
+in
+
+if !(lib.versionAtLeast ocaml.version minimumOCamlVersion)
+then builtins.throw "${pname} needs at least OCaml ${minimumOCamlVersion}"
+else
+
+stdenv.mkDerivation {
+
+  name = "ocaml${ocaml.version}-${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/releases/${pname}-${version}.tbz";
+    sha256 = "sha256:1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj";
+  };
+
+  nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
+  buildInputs = [ topkg uutf uunf uucd ];
+
+  propagatedBuildInputs = [ uchar ];
+
+  strictDeps = true;
+
+  buildPhase = ''
+    runHook preBuild
+    ${topkg.buildPhase} --with-cmdliner false --tests ${lib.boolToString doCheck}
+    runHook postBuild
+  '';
+
+  inherit (topkg) installPhase;
+
+  inherit doCheck;
+  checkPhase = ''
+    runHook preCheck
+    ${topkg.run} test
+    runHook postCheck
+  '';
+  checkInputs = [ uucd ];
+
+  meta = with lib; {
+    description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
+    homepage = webpage;
+    inherit (ocaml.meta) platforms;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.vbgl ];
+  };
+}