diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8848512de6fd..8b265d59e6f2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5554,6 +5554,12 @@ githubId = 7622248; name = "Sebastian Zivota"; }; + locallycompact = { + email = "dan.firth@homotopic.tech"; + github = "locallycompact"; + githubId = 1267527; + name = "Daniel Firth"; + }; lopsided98 = { email = "benwolsieffer@gmail.com"; github = "lopsided98"; diff --git a/pkgs/development/ocaml-modules/luv/default.nix b/pkgs/development/ocaml-modules/luv/default.nix new file mode 100644 index 000000000000..6ad5ce5d4879 --- /dev/null +++ b/pkgs/development/ocaml-modules/luv/default.nix @@ -0,0 +1,35 @@ +{ lib, buildDunePackage, fetchurl +, ctypes, result +, alcotest +, file +}: + +buildDunePackage rec { + pname = "luv"; + version = "0.5.7"; + useDune2 = true; + + src = fetchurl { + url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz"; + sha256 = "0wjnw5riydnzsk1xdzljlpzdnjwpa0j597y6x6ma4990mqj54260"; + }; + + postConfigure = '' + for f in src/c/vendor/configure/{ltmain.sh,configure}; do + substituteInPlace "$f" --replace /usr/bin/file file + done + ''; + + nativeBuildInputs = [ file ]; + propagatedBuildInputs = [ ctypes result ]; + checkInputs = [ alcotest ]; + doCheck = true; + + meta = with lib; { + homepage = "https://github.com/aantron/luv"; + description = "Binding to libuv: cross-platform asynchronous I/O"; + # MIT-licensed, extra licenses apply partially to libuv vendor + license = with licenses; [ mit bsd2 bsd3 cc-by-sa-40 ]; + maintainers = with maintainers; [ locallycompact sternenseemann ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index a0556ccecb16..8b4b56d57a49 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -576,6 +576,10 @@ let lua-ml = callPackage ../development/ocaml-modules/lua-ml { }; + luv = callPackage ../development/ocaml-modules/luv { + inherit (pkgs) file; + }; + lwt = callPackage ../development/ocaml-modules/lwt { ocaml-migrate-parsetree = ocaml-migrate-parsetree-2-1; };