nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, stdenv
3, fetchFromGitHub
4, pkg-config
5, wrapGAppsHook
6, help2man
7, glib-networking
8, gst_all_1
9, gtk3
10, luafilesystem
11, luajit
12, sqlite
13, webkitgtk
14}:
15
16stdenv.mkDerivation rec {
17 pname = "luakit";
18 version = "2.3.3";
19
20 src = fetchFromGitHub {
21 owner = "luakit";
22 repo = pname;
23 rev = version;
24 hash = "sha256-DtoixcLq+ddbacTAo+Qq6q4k1i6thirACw1zqUeOxXo=";
25 };
26
27 nativeBuildInputs = [
28 pkg-config
29 help2man
30 wrapGAppsHook
31 ];
32 buildInputs = [
33 gtk3
34 glib-networking # TLS support
35 luafilesystem
36 luajit
37 sqlite
38 webkitgtk
39 ] ++ ( with gst_all_1; [
40 gstreamer
41 gst-plugins-base
42 gst-plugins-good
43 gst-plugins-bad
44 gst-plugins-ugly
45 gst-libav
46 ]);
47
48
49 # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
50 # TODO: why is not this the default? The test runner adds
51 # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
52 # scripts don't add an equivalent
53 preBuild = ''
54 export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua"
55 '';
56
57 makeFlags = [
58 "DEVELOPMENT_PATHS=0"
59 "USE_LUAJIT=1"
60 "INSTALLDIR=${placeholder "out"}"
61 "PREFIX=${placeholder "out"}"
62 "USE_GTK3=1"
63 "XDGPREFIX=${placeholder "out"}/etc/xdg"
64 ];
65
66 preFixup = let
67 luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua";
68 in ''
69 gappsWrapperArgs+=(
70 --prefix XDG_CONFIG_DIRS : "$out/etc/xdg"
71 --prefix LUA_PATH ';' "${luaKitPath};$LUA_PATH"
72 --prefix LUA_CPATH ';' "$LUA_CPATH"
73 )
74 '';
75
76 meta = with lib; {
77 homepage = "https://luakit.github.io/";
78 description = "Fast, small, webkit-based browser framework extensible in Lua";
79 longDescription = ''
80 Luakit is a highly configurable browser framework based on the WebKit web
81 content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
82 and licensed under the GNU GPLv3 license. It is primarily targeted at
83 power users, developers and anyone who wants to have fine-grained control
84 over their web browser’s behaviour and interface.
85 '';
86 license = licenses.gpl3Only;
87 maintainers = [ maintainers.AndersonTorres ];
88 platforms = platforms.unix;
89 };
90}