dunlin/default.nix

96 lines
2.0 KiB
Nix

{ stdenv
, callPackage
, copyDesktopItems
, fennel
, fetchFromGitHub
, fetchurl
, glib-networking
, gobject-introspection
, gtk3
, gnome3
, lib
, librsvg
, lua53Packages
, lua5_3
, makeDesktopItem
, makeWrapper
, pandoc
, webkitgtk
, writeText
}:
let pname = "dunlin";
lume = let lua = lua5_3; in lua53Packages.buildLuaPackage rec {
pname = "lume";
version = "1";
src = fetchFromGitHub {
repo = "lume"; owner = "rxi";
rev = "98847e7812cf28d3d64b289b03fad71dc704547d";
hash = "sha256-/u23EqgjjkU8FV9oXvMNXBkY8JAOJUhJAzXTSibJthU=";
};
buildPhase = ":";
installPhase = ''
mkdir -p "$out/share/lua/${lua.luaversion}"
cp lume.lua "$out/share/lua/${lua.luaversion}"
'';
};
lsqlite3 = callPackage ./lsqlite3.nix { lua = lua5_3; };
lua = lua5_3.withPackages (ps: with ps; [
lgi
luafilesystem
luaposix
readline
lume
lsqlite3
]);
fennel_ = lua.pkgs.fennel;
glib_networking_gio = "${glib-networking}/lib/gio/modules";
in stdenv.mkDerivation rec {
inherit pname;
fennel = fennel_;
version = "0.1";
src = lib.sources.cleanSource ./.;
GIO_EXTRA_MODULES = glib_networking_gio;
buildInputs = [
lua
gtk3
webkitgtk
gobject-introspection.dev
fennel
glib-networking
];
nativeBuildInputs = [
lua
pandoc
makeWrapper
copyDesktopItems
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
desktopItems = [
(makeDesktopItem rec {
desktopName = "Just Browsing";
name = pname;
exec = pname;
categories = ["Network"] ;
# icon = ./just.png;
genericName = "Web browser";
})
];
postInstall = ''
makeWrapper ${fennel}/bin/fennel \
$out/bin/${pname} \
--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \
--prefix GIO_EXTRA_MODULES ":" "${glib_networking_gio}" \
--add-flags "--add-fennel-path $out/lib/just/?.fnl" \
--add-flags "--add-package-path $out/lib/just/?.lua" \
--add-flags "$out/lib/just/just.fnl"
'';
}