Merge pull request #54454 from teto/luarocks_fixes
luarocks: support more commands: pack/build
This commit is contained in:
commit
a6a0ba8354
5 changed files with 62 additions and 7 deletions
|
@ -1,4 +1,11 @@
|
||||||
{stdenv, fetchurl, lua, curl, makeWrapper, which, unzip}:
|
{stdenv, fetchurl
|
||||||
|
, curl, makeWrapper, which, unzip
|
||||||
|
, lua
|
||||||
|
# for 'luarocks pack'
|
||||||
|
, zip
|
||||||
|
# some packages need to be compiled with cmake
|
||||||
|
, cmake
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
s = # Generated upstream information
|
s = # Generated upstream information
|
||||||
rec {
|
rec {
|
||||||
|
@ -36,17 +43,33 @@ stdenv.mkDerivation {
|
||||||
for i in "$out"/bin/*; do
|
for i in "$out"/bin/*; do
|
||||||
test -L "$i" || {
|
test -L "$i" || {
|
||||||
wrapProgram "$i" \
|
wrapProgram "$i" \
|
||||||
--prefix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?.lua" \
|
--suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?.lua" \
|
||||||
--prefix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?/init.lua" \
|
--suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?/init.lua" \
|
||||||
|
--suffix LUA_CPATH ";" "$(echo "$out"/lib/lua/*/)?.so" \
|
||||||
|
--suffix LUA_CPATH ";" "$(echo "$out"/share/lua/*/)?/init.lua"
|
||||||
|
|
||||||
}
|
}
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
meta = {
|
|
||||||
|
propagatedBuildInputs = [ zip unzip cmake ];
|
||||||
|
|
||||||
|
# unpack hook for src.rock and rockspec files
|
||||||
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
|
# cmake is just to compile packages with "cmake" buildType, not luarocks itself
|
||||||
|
dontUseCmakeConfigure = true;
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export PATH="src/bin:''${PATH:-}"
|
||||||
|
export LUA_PATH="src/?.lua;''${LUA_PATH:-}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
inherit (s) version;
|
inherit (s) version;
|
||||||
description = ''A package manager for Lua'';
|
description = ''A package manager for Lua'';
|
||||||
license = stdenv.lib.licenses.mit ;
|
license = licenses.mit ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = with maintainers; [raskin teto];
|
||||||
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
9
pkgs/development/tools/misc/luarocks/luarocks-nix.nix
Normal file
9
pkgs/development/tools/misc/luarocks/luarocks-nix.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ luarocks, fetchFromGitHub }:
|
||||||
|
luarocks.overrideAttrs(old: {
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "teto";
|
||||||
|
repo = "luarocks";
|
||||||
|
rev = "d669e8e118e6ca8bff05f32dbc9e5589e6ac45d2";
|
||||||
|
sha256 = "1lay3905a5sx2a4y68lbys0913qs210hcj9kn2lbqinw86c1vyc3";
|
||||||
|
};
|
||||||
|
})
|
20
pkgs/development/tools/misc/luarocks/setup-hook.sh
Normal file
20
pkgs/development/tools/misc/luarocks/setup-hook.sh
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
unpackCmdHooks+=(_trySourceRock)
|
||||||
|
unpackCmdHooks+=(_tryRockSpec)
|
||||||
|
|
||||||
|
_tryRockSpec() {
|
||||||
|
if ! [[ "$curSrc" =~ \.rockspec$ ]]; then return 1; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_trySourceRock() {
|
||||||
|
|
||||||
|
if ! [[ "$curSrc" =~ \.src.rock$ ]]; then return 1; fi
|
||||||
|
|
||||||
|
export PATH=${unzip}/bin:$PATH
|
||||||
|
|
||||||
|
# luarocks expects a clean <name>.rock.spec name to be the package name
|
||||||
|
# so we have to strip the hash
|
||||||
|
renamed="$(stripHash $curSrc)"
|
||||||
|
cp "$curSrc" "$renamed"
|
||||||
|
luarocks unpack --force "$renamed"
|
||||||
|
}
|
||||||
|
|
|
@ -7860,6 +7860,7 @@ in
|
||||||
luajit luajit_2_0 luajit_2_1;
|
luajit luajit_2_0 luajit_2_1;
|
||||||
|
|
||||||
luarocks = luaPackages.luarocks;
|
luarocks = luaPackages.luarocks;
|
||||||
|
luarocks-nix = luaPackages.luarocks-nix;
|
||||||
|
|
||||||
toluapp = callPackage ../development/tools/toluapp {
|
toluapp = callPackage ../development/tools/toluapp {
|
||||||
lua = lua5_1; # doesn't work with any other :(
|
lua = lua5_1; # doesn't work with any other :(
|
||||||
|
|
|
@ -43,6 +43,8 @@ let
|
||||||
inherit lua;
|
inherit lua;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { };
|
||||||
|
|
||||||
basexx = buildLuaPackage rec {
|
basexx = buildLuaPackage rec {
|
||||||
version = "0.4.0";
|
version = "0.4.0";
|
||||||
name = "basexx-${version}";
|
name = "basexx-${version}";
|
||||||
|
|
Loading…
Reference in a new issue