From 317e6180794e2ca4003387cf967659eb5ccabed1 Mon Sep 17 00:00:00 2001 From: Stanislav Asunkin <1353637+stasjok@users.noreply.github.com> Date: Fri, 28 Mar 2025 13:17:28 +0300 Subject: [PATCH 1/2] luaPackages.luv: 1.48.0-2 -> 1.50.0-1 --- maintainers/scripts/luarocks-packages.csv | 2 +- pkgs/development/lua-modules/generated-packages.nix | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index 5beef16bf14b..d7f6f1e77f7f 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -105,7 +105,7 @@ luazip,,,,,, lusc_luv,,,,,, lush.nvim,,,https://luarocks.org/dev,,,teto luuid,,,,20120509-2,, -luv,,,,1.48.0-2,, +luv,,,,1.50.0-1,, 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 9411c5d18c4f..b38e36143a7d 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -3470,15 +3470,15 @@ final: prev: { }: buildLuarocksPackage { pname = "luv"; - version = "1.48.0-2"; + version = "1.50.0-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/luv-1.48.0-2.rockspec"; - sha256 = "0353bjn9z90a1hd7rksdfrd9fbdd31hbvdaxr1fb0fh0bc1cpy94"; + url = "mirror://luarocks/luv-1.50.0-1.rockspec"; + sha256 = "01i6hs3nllbdwlwcfgjdbxmzgww2yk6a8bn0s5q4lkv67dx89g90"; }).outPath; src = fetchurl { - url = "https://github.com/luvit/luv/releases/download/1.48.0-2/luv-1.48.0-2.tar.gz"; - sha256 = "0yivq14dw0vjyl8ibrgdgrj9fbhjyy4yf3m4jc15bxmlxggisfic"; + url = "https://github.com/luvit/luv/releases/download/1.50.0-1/luv-1.50.0-1.tar.gz"; + sha256 = "0d5wnn35asqg3ixmyqq80s7ibhbdzl9kxn7dy9a1v64w9l1c6ryq"; }; disabled = luaOlder "5.1"; From 51934865adf9e56ad8e46c2ca4f6c3299ac1d122 Mon Sep 17 00:00:00 2001 From: Stanislav Asunkin <1353637+stasjok@users.noreply.github.com> Date: Thu, 3 Apr 2025 22:21:14 +0300 Subject: [PATCH 2/2] luaPackages.luv: use manual packaging * add tests * add update script * build with shared libluv --- maintainers/scripts/luarocks-packages.csv | 1 - .../lua-modules/generated-packages.nix | 31 ------ pkgs/development/lua-modules/luv/default.nix | 95 +++++++++++++++++++ pkgs/development/lua-modules/luv/lib.nix | 36 +++++++ pkgs/development/lua-modules/overrides.nix | 53 ----------- pkgs/top-level/lua-packages.nix | 3 + 6 files changed, 134 insertions(+), 85 deletions(-) create mode 100644 pkgs/development/lua-modules/luv/default.nix create mode 100644 pkgs/development/lua-modules/luv/lib.nix diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index d7f6f1e77f7f..869e0ea15ca0 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -105,7 +105,6 @@ luazip,,,,,, lusc_luv,,,,,, lush.nvim,,,https://luarocks.org/dev,,,teto luuid,,,,20120509-2,, -luv,,,,1.50.0-1,, 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 b38e36143a7d..effa5537f55d 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -3461,37 +3461,6 @@ final: prev: { } ) { }; - luv = callPackage ( - { - buildLuarocksPackage, - cmake, - fetchurl, - luaOlder, - }: - buildLuarocksPackage { - pname = "luv"; - version = "1.50.0-1"; - knownRockspec = - (fetchurl { - url = "mirror://luarocks/luv-1.50.0-1.rockspec"; - sha256 = "01i6hs3nllbdwlwcfgjdbxmzgww2yk6a8bn0s5q4lkv67dx89g90"; - }).outPath; - src = fetchurl { - url = "https://github.com/luvit/luv/releases/download/1.50.0-1/luv-1.50.0-1.tar.gz"; - sha256 = "0d5wnn35asqg3ixmyqq80s7ibhbdzl9kxn7dy9a1v64w9l1c6ryq"; - }; - - 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 <