diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index bb23782e27d5..baacbfe195fe 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -106,7 +106,6 @@ luazip,,,,,, lusc_luv,,,,,, lush.nvim,,,https://luarocks.org/dev,,,teto luuid,,,,20120509-2,, -luv,,,,1.48.0-2,, lyaml,,,,,,lblasc lz.n,,,,,,mrcjkb lze,,,,,,birdee diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 1856cde76d65..d55c0b9ad407 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -3491,37 +3491,6 @@ final: prev: { } ) { }; - luv = callPackage ( - { - buildLuarocksPackage, - cmake, - fetchurl, - luaOlder, - }: - buildLuarocksPackage { - pname = "luv"; - version = "1.48.0-2"; - knownRockspec = - (fetchurl { - url = "mirror://luarocks/luv-1.48.0-2.rockspec"; - sha256 = "0353bjn9z90a1hd7rksdfrd9fbdd31hbvdaxr1fb0fh0bc1cpy94"; - }).outPath; - src = fetchurl { - url = "https://github.com/luvit/luv/releases/download/1.48.0-2/luv-1.48.0-2.tar.gz"; - sha256 = "0yivq14dw0vjyl8ibrgdgrj9fbhjyy4yf3m4jc15bxmlxggisfic"; - }; - - disabled = luaOlder "5.1"; - nativeBuildInputs = [ cmake ]; - - meta = { - homepage = "https://github.com/luvit/luv"; - description = "Bare libuv bindings for lua"; - license.fullName = "Apache 2.0"; - }; - } - ) { }; - lyaml = callPackage ( { buildLuarocksPackage, diff --git a/pkgs/development/lua-modules/luv/default.nix b/pkgs/development/lua-modules/luv/default.nix new file mode 100644 index 000000000000..61de3da4c359 --- /dev/null +++ b/pkgs/development/lua-modules/luv/default.nix @@ -0,0 +1,95 @@ +{ + lib, + buildLuarocksPackage, + cmake, + fetchFromGitHub, + libuv, + lua, + luaOlder, + nix-update-script, + runCommand, +}: + +buildLuarocksPackage rec { + pname = "luv"; + version = "1.50.0-1"; + + src = fetchFromGitHub { + owner = "luvit"; + repo = "luv"; + rev = version; + # Need deps/lua-compat-5.3 only + fetchSubmodules = true; + hash = "sha256-PS3+qpELpX0tr7UqrlnE4NYScJb50j+9J4fbH9CTr/s="; + }; + + # to make sure we dont use bundled deps + prePatch = '' + rm -rf deps/lua deps/luajit deps/libuv + ''; + + buildInputs = [ libuv ]; + nativeBuildInputs = [ cmake ]; + + # Need to specify WITH_SHARED_LIBUV=ON cmake flag, but + # Luarocks doesn't take cmake variables from luarocks config. + # Need to specify it in rockspec. See https://github.com/luarocks/luarocks/issues/1160. + knownRockspec = runCommand "luv-${version}.rockspec" { } '' + patch ${src}/luv-scm-0.rockspec -o - > $out <<'EOF' + --- a/luv-scm-0.rockspec + +++ b/luv-scm-0.rockspec + @@ -1,5 +1,5 @@ + package = "luv" + -version = "scm-0" + +version = "${version}" + source = { + url = 'git://github.com/luvit/luv.git' + } + @@ -24,6 +24,7 @@ + build = + type = 'cmake', + variables = { + + WITH_SHARED_LIBUV="ON", + CMAKE_C_FLAGS="$(CFLAGS)", + CMAKE_MODULE_LINKER_FLAGS="$(LIBFLAG)", + LUA_LIBDIR="$(LUA_LIBDIR)", + EOF + ''; + + doInstallCheck = true; + installCheckPhase = '' + rm tests/test-{dns,thread,tty}.lua + luarocks test + ''; + + disabled = luaOlder "5.1"; + + passthru = { + tests.test = + runCommand "luv-${version}-test" + { + nativeBuildInputs = [ (lua.withPackages (ps: [ ps.luv ])) ]; + } + '' + lua <