diff --git a/pkgs/development/ocaml-modules/mldoc/default.nix b/pkgs/development/ocaml-modules/mldoc/default.nix new file mode 100644 index 00000000000..2d184e68a0e --- /dev/null +++ b/pkgs/development/ocaml-modules/mldoc/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildDunePackage +, fetchFromGitHub +, fetchpatch +, angstrom +, cmdliner +, core +, core_bench +, js_of_ocaml +, js_of_ocaml-ppx +, ppx_deriving_yojson +, uri +, yojson +, lwt +, xmlm +}: +let + angstrom' = angstrom.overrideAttrs (attrs: { + patches = attrs.patches or [ ] ++ [ + # mldoc requires Angstrom to expose `unsafe_lookahead` + (fetchpatch { + url = "https://github.com/logseq/angstrom/commit/bbe36c99c13678937d4c983a427e02a733d6cc24.patch"; + sha256 = "sha256-RapY1QJ8U0HOqJ9TFDnCYB4tFLFuThESzdBZqjYuDUA="; + }) + ]; + }); + uri' = uri.override { angstrom = angstrom'; }; +in +buildDunePackage rec { + pname = "mldoc"; + version = "1.3.9"; + + minimalOCamlVersion = "4.10"; + + src = fetchFromGitHub { + owner = "logseq"; + repo = "mldoc"; + rev = "v${version}"; + sha256 = "sha256-C5SeG10EoZixCWeBxw7U+isAR8UWd1jzHLdmbp//gAs="; + }; + + buildInputs = [ + cmdliner + core + core_bench + js_of_ocaml + js_of_ocaml-ppx + lwt + ]; + + propagatedBuildInputs = [ + angstrom' + uri' + yojson + ppx_deriving_yojson + xmlm + ]; + + meta = with lib; { + homepage = "https://github.com/logseq/mldoc"; + description = "Another Emacs Org-mode and Markdown parser"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ marsam ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 5083f1733cd..efebf7e3853 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -899,6 +899,8 @@ let mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { }; + mldoc = callPackage ../development/ocaml-modules/mldoc { }; + mlgmp = callPackage ../development/ocaml-modules/mlgmp { }; mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { };