Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.8 kB · 110 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111{ stdenv, lib, buildLuarocksPackage, cmake, fetchFromGitHub, libuv, lua, luaOlder, nix-update-script, runCommand,}:
buildLuarocksPackage rec { pname = "luv"; version = "1.51.0-1";
src = fetchFromGitHub { owner = "luvit"; repo = "luv"; rev = version; # Need deps/lua-compat-5.3 only fetchSubmodules = true; hash = "sha256-vQfr0TwhkvRDJwZnxDD/53yCzyDouzQimTnwj4drs/c="; };
# to make sure we dont use bundled deps prePatch = '' rm -rf deps/lua deps/luajit deps/libuv '';
patches = [ # Fails with "Uncaught Error: ./tests/test-dns.lua:164: assertion failed!" # and "./tests/test-tty.lua:19: bad argument #1 to 'is_readable' (Expected # uv_stream userdata)" ./disable-failing-tests.patch ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Fails with "Uncaught Error: ./tests/test-udp.lua:261: EHOSTUNREACH" ./disable-failing-darwin-tests.patch ];
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 '';
__darwinAllowLocalNetworking = true;
doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck luarocks test runHook postInstallCheck '';
disabled = luaOlder "5.1";
passthru = { tests.test = runCommand "luv-${version}-test" { nativeBuildInputs = [ (lua.withPackages (ps: [ ps.luv ])) ]; } '' lua <<EOF local uv = require("luv") assert(uv.fs_mkdir(assert(uv.os_getenv("out")), 493)) print(uv.version_string()) EOF '';
updateScript = nix-update-script { }; };
meta = { homepage = "https://github.com/luvit/luv"; description = "Bare libuv bindings for lua"; longDescription = '' This library makes libuv available to lua scripts. It was made for the luvit project but should usable from nearly any lua project. ''; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ stasjok ]; platforms = lua.meta.platforms; };}