nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
2018-03-18 12:17:59 +01:00

62 lines
2.3 KiB
Nix

{stdenv, fetchFromGitHub, pkgconfig, wrapGAppsHook, makeWrapper
,help2man, lua5, luafilesystem, luajit, sqlite
,webkitgtk, gtk3, gst_all_1}:
let
lualibs = [luafilesystem];
getPath = lib : type : "${lib}/lib/lua/${lua5.luaversion}/?.${type};${lib}/share/lua/${lua5.luaversion}/?.${type}";
getLuaPath = lib : getPath lib "lua";
getLuaCPath = lib : getPath lib "so";
luaPath = stdenv.lib.concatStringsSep ";" (map getLuaPath lualibs);
luaCPath = stdenv.lib.concatStringsSep ";" (map getLuaCPath lualibs);
in stdenv.mkDerivation rec {
name = "luakit-${version}";
version = "2017.08.10";
src = fetchFromGitHub {
owner = "luakit";
repo = "luakit";
rev = "${version}";
sha256 = "09z88b50vf2y64vj79cymknyzk3py6azv4r50jng4cw9jx2ray7r";
};
nativeBuildInputs = [pkgconfig help2man wrapGAppsHook makeWrapper];
buildInputs = [webkitgtk lua5 luafilesystem luajit sqlite gtk3
gst_all_1.gstreamer gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
];
postPatch =
#Kind of ugly seds here. There must be a better solution.
''
patchShebangs ./build-utils
sed -i "2 s|require \"lib.lousy.util\"|dofile(\"./lib/lousy/util.lua\")|" ./build-utils/docgen/gen.lua;
sed -i "3 s|require \"lib.markdown\"|dofile(\"./lib/markdown.lua\")|" ./build-utils/docgen/gen.lua;
sed -i "1,2 s|require(\"lib.lousy.util\")|dofile(\"./lib/lousy/util.lua\")|" ./build-utils/find_files.lua;
'';
buildPhase = ''
make DEVELOPMENT_PATHS=0 USE_LUAJIT=1 INSTALLDIR=$out PREFIX=$out USE_GTK3=1
'';
installPhase = let
luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua";
in ''
make DEVELOPMENT_PATHS=0 INSTALLDIR=$out PREFIX=$out XDGPREFIX=$out/etc/xdg USE_GTK3=1 install
wrapProgram $out/bin/luakit \
--prefix XDG_CONFIG_DIRS : "$out/etc/xdg" \
--set LUA_PATH '${luaKitPath};${luaPath};' \
--set LUA_CPATH '${luaCPath};'
'';
meta = with stdenv.lib; {
description = "Fast, small, webkit based browser framework extensible in Lua";
homepage = "http://luakit.org";
license = licenses.gpl3;
platforms = platforms.linux; # Only tested linux
};
}