git.iko.soy/typeable/nixpkgs
on master help sign in
luaPackages.libuv: bump to v1.43.0

as required by neovim master

commit2e5732b320d91938ebbb924fd5e7ea71df946ff1 authorMatthieu Coudron <mcoudron@hotmail.com> dateTue 29 Mar 2022, 03:46 (5 years ago) parent8bb4179
2 files changed+53−30
pkgs/development/lua-modules/generated-packages.nix+17−7 pkgs/development/lua-modules/overrides.nix+36−23
pkgs/development/lua-modules/generated-packages.nix+17−7
@@ -2028,22 +2028,32 @@ buildLuarocksPackage {
20282028 };
20292029}) {};
20302030
2031−luv = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
2032−, fetchurl, lua
2031+luv = callPackage ({ buildLuarocksPackage, luaOlder, luaAtLeast
2032+, cmake, fetchurl, lua
20332033}:
20342034buildLuarocksPackage {
20352035 pname = "luv";
20362036 version = "1.43.0-0";
20372037 knownRockspec = (fetchurl {
2038− url = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luv-1.43.0-0.rockspec";
2038+ url = "https://luarocks.org/luv-1.43.0-0.rockspec";
20392039 sha256 = "0z5a7yp20xbb3f9w73skm9fj89gxxqv72nrxjq3kycsc6c2v3m8f";
20402040 }).outPath;
2041− src = fetchurl {
2042− url = "https://github.com/luvit/luv/releases/download/1.43.0-0/luv-1.43.0-0.tar.gz";
2043− sha256 = "1qlx1r79sfn8r20yx19bhdr0v58ykpwgwzy5vma9p2ngrlynyyjn";
2044− };
2041+
2042+ src = fetchgit ( removeAttrs (builtins.fromJSON ''{
2043+ "url": "https://github.com/luvit/luv.git",
2044+ "rev": "1.43.0-0",
2045+ "date": "2022-03-12T16:05:50+08:00",
2046+ "path": "/nix/store/d7f3sdw5l0cm8xkjdm4m6jkmx794w48j-luv",
2047+ "sha256": "sha256-CcUX69XzgWlJEwHUhhtqs9sDA5TNIusKek5yV2Nt3Wc=",
2048+ "fetchLFS": false,
2049+ "fetchSubmodules": true,
2050+ "deepClone": false,
2051+ "leaveDotGit": false
2052+}
2053+ '') ["date" "path"]) ;
20452054
20462055 disabled = with lua; (luaOlder "5.1");
2056+ nativeBuildInputs = [ cmake ];
20472057 propagatedBuildInputs = [ lua ];
20482058
20492059 meta = {
pkgs/development/lua-modules/overrides.nix+36−23
@@ -280,34 +280,47 @@ with prev;
280280 '';
281281 });
282282
283− luv = prev.lib.overrideLuarocks prev.luv (drv: {
284− # Use system libuv instead of building local and statically linking
285− # This is a hacky way to specify -DWITH_SHARED_LIBUV=ON which
286− # is not possible with luarocks and the current luv rockspec
287− # While at it, remove bundled libuv source entirely to be sure.
288− # We may wish to drop bundled lua submodules too...
289− preBuild = ''
290− sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
291− rm -rf deps/libuv
292− '';
293283
294− buildInputs = [ pkgs.libuv ];
284+ # as advised in https://github.com/luarocks/luarocks/issues/1402
285+ # we shouldn't use luarocks machinery to build complex cmake components
286+ libluv = pkgs.stdenv.mkDerivation {
287+
288+ inherit (prev.luv) pname version meta src;
289+
290+ cmakeFlags = [
291+ "-DBUILD_SHARED_LIBS=ON"
292+ "-DBUILD_MODULE=OFF"
293+ "-DWITH_SHARED_LIBUV=ON"
294+ ];
295+
296+ buildInputs = [ pkgs.libuv ];
297+
298+ nativeBuildInputs = [ pkgs.pkg-config pkgs.fixDarwinDylibNames pkgs.cmake ];
299+ # Fixup linking libluv.dylib, for some reason it's not linked against lua correctly.
300+ NIX_LDFLAGS = pkgs.lib.optionalString pkgs.stdenv.isDarwin
301+ (if isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua");
302+ };
295303
296− passthru = {
297− libluv = final.luv.overrideAttrs (oa: {
298− preBuild = final.luv.preBuild + ''
299− sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt
300− sed -i 's,\(option(BUILD_SHARED_LIBS.*\)OFF,\1ON,' CMakeLists.txt
301− sed -i 's,${"\${.*INSTALL_INC_DIR}"},${placeholder "out"}/include/luv,' CMakeLists.txt
302− '';
304+ luv = prev.lib.overrideLuarocks prev.luv (drv: {
305+
306+ buildInputs = [ pkgs.pkg-config pkgs.libuv ];
303307
304− nativeBuildInputs = [ pkgs.fixDarwinDylibNames ];
308+ doInstallCheck = true;
305309
306− # Fixup linking libluv.dylib, for some reason it's not linked against lua correctly.
307− NIX_LDFLAGS = pkgs.lib.optionalString pkgs.stdenv.isDarwin
308− (if isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua");
309− });
310+ # Use system libuv instead of building local and statically linking
311+ extraVariables = {
312+ "WITH_SHARED_LIBUV" = "ON";
310313 };
314+
315+ # we unset the LUA_PATH since the hook erases the interpreter defaults (To fix)
316+ installCheckPhase = ''
317+ unset LUA_PATH
318+ rm tests/test-{dns,thread}.lua
319+ lua tests/run.lua
320+ '';
321+
322+ passthru.libluv = final.libluv;
323+
311324 });
312325
313326 lyaml = prev.lib.overrideLuarocks prev.lyaml (oa: {