{ 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" ''; }