{ stdenv , pkg-config , buildPackages , callPackage , fennel , fetchFromGitHub , fetchurl , gdk-pixbuf , glib , gobject-introspection , gtk3 , harfbuzz , lib , librsvg , lua53Packages , lua5_3 , makeWrapper , pango , wrapGAppsHook3 , writeText }: let luaPackages = lua53Packages; lgi = luaPackages.buildLuaPackage { pname = "lgi"; version = "0.9.2-2"; buildInputs = [ gobject-introspection ]; nativeBuildInputs = [ pkg-config ]; src = fetchFromGitHub { owner = "lgi-devs"; repo = "lgi"; rev = "e06ad94c8a1c84e3cdb80cee293450a280dfcbc7"; hash = "sha256-VYr/DV1FAyzPe6p6Quc1nmsHup23IAMfz532rL167Q4="; }; }; luaDbusProxy = callPackage ./lua-dbus-proxy.nix { inherit (luaPackages) buildLuaPackage; inherit lgi; lua = lua5_3; }; inifile = luaPackages.buildLuaPackage rec { pname = "inifile"; name = "${pname}-${version}"; version = "1.0.2"; src = fetchFromGitHub { owner = "bartbes"; repo = "inifile"; rev = "f0b41a8a927f3413310510121c5767021957a4e0"; sha256 = "1ry0q238vbp8wxwy4qp1aychh687lvbckcf647pmc03rwkakxm4r"; }; buildPhase = ":"; installPhase = '' mkdir -p "$out/share/lua/${lua.luaversion}" cp inifile.lua "$out/share/lua/${lua.luaversion}/" ''; }; lua = lua5_3.withPackages (ps: with ps; [ luaDbusProxy inifile inspect lgi luafilesystem luaposix penlight readline ]); in stdenv.mkDerivation { pname = "saturn"; version = "0.4.9"; # nearly Saturn 0.5 src =./.; buildInputs = [ lua gtk3.dev gobject-introspection # .dev gdk-pixbuf glib ]; nativeBuildInputs = [ buildPackages.lua gobject-introspection makeWrapper fennel wrapGAppsHook3 ]; makeFlags = [ "PREFIX=${placeholder "out"}" ]; postInstall = '' mkdir -p $out/share/dbus-1/services cat < $out/share/dbus-1/services/net.telent.saturn.service [D-BUS Service] Name=net.telent.saturn Exec=$out/bin/saturn SERVICE ''; }