diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix index a103221b85b9..953949b949a0 100644 --- a/pkgs/development/compilers/haxe/default.nix +++ b/pkgs/development/compilers/haxe/default.nix @@ -24,7 +24,7 @@ let ptmap camlp5 sha - luv + luv-0-5-12 extlib ] else @@ -37,7 +37,7 @@ let ptmap camlp5 sha - luv + luv-0-5-12 extlib-1-7-7 ]; diff --git a/pkgs/development/ocaml-modules/luv/default.nix b/pkgs/development/ocaml-modules/luv/default.nix index 207d1a1aea3e..193edadb4b09 100644 --- a/pkgs/development/ocaml-modules/luv/default.nix +++ b/pkgs/development/ocaml-modules/luv/default.nix @@ -1,9 +1,6 @@ -# nixpkgs-update: no auto update -# haxe depends on specific version of luv { lib, buildDunePackage, - ocaml, fetchurl, ctypes, result, @@ -11,51 +8,59 @@ file, }: -buildDunePackage rec { - pname = "luv"; - version = "0.5.12"; +let + generic = + { + version, + sha256, + }: + buildDunePackage rec { + pname = "luv"; + inherit version; - minimalOCamlVersion = "4.03"; + src = fetchurl { + url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz"; + inherit sha256; + }; - src = fetchurl { - url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz"; + patches = lib.optional (lib.versionOlder version "0.5.14") ./incompatible-pointer-type-fix.diff; + + postConfigure = '' + substituteInPlace "src/c/vendor/configure/ltmain.sh" --replace-fail /usr/bin/file file + ''; + + nativeBuildInputs = [ file ]; + propagatedBuildInputs = [ + ctypes + result + ]; + checkInputs = [ alcotest ]; + doCheck = true; + + meta = { + 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 lib.licenses; [ + mit + bsd2 + bsd3 + cc-by-sa-40 + ]; + maintainers = with lib.maintainers; [ + locallycompact + sternenseemann + ]; + }; + }; +in +{ + luv-0-5-12 = generic { + version = "0.5.12"; 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 = { - 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 lib.licenses; [ - mit - bsd2 - bsd3 - cc-by-sa-40 - ]; - maintainers = with lib.maintainers; [ - locallycompact - sternenseemann - ]; + luv = generic { + version = "0.5.14"; + sha256 = "sha256-jgG0pQyIds3ZjY4kXAaHxNxNiDrtFhrZxazh+x/arpk="; }; } diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 72027961b6da..85a8b5df2a14 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1147,9 +1147,12 @@ let lutils = callPackage ../development/ocaml-modules/lutils { }; - luv = callPackage ../development/ocaml-modules/luv { - inherit (pkgs) file; - }; + inherit + (callPackage ../development/ocaml-modules/luv { + }) + luv-0-5-12 + luv + ; lwd = callPackage ../development/ocaml-modules/lwd { };