nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
Reno Dakota 8330c77eab
ocamlPackages.luv: backport patch; fix clang build
clang build fails with an incompatible pointer type error. Backport a
patch from 0.5.14 which fixes this. Can not just update to 0.5.14 as it
contains breaking changes and breaks most of luv's consumers.

ad7f953fcc
2024-11-17 08:42:09 -08:00

44 lines
1.3 KiB
Nix

{ lib, buildDunePackage, ocaml, fetchurl
, ctypes, result
, alcotest
, file
}:
buildDunePackage rec {
pname = "luv";
version = "0.5.12";
minimalOCamlVersion = "4.03";
src = fetchurl {
url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz";
sha256 = "sha256-dp9qCIYqSdROIAQ+Jw73F3vMe7hnkDe8BgZWImNMVsA=";
};
patches = [
# backport of patch to fix incompatible pointer type. remove next update
# https://github.com/aantron/luv/commit/ad7f953fccb8732fe4eb9018556e8d4f82abf8f2
./incompatible-pointer-type-fix.diff
];
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 ];
# Alcotest depends on fmt that needs 4.08 or newer
doCheck = lib.versionAtLeast ocaml.version "4.08";
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 ];
};
}