default.nix (2247B)
1 { stdenv 2 , pkg-config 3 , buildPackages 4 , callPackage 5 , fetchFromGitHub 6 , fetchurl 7 , gdk-pixbuf 8 , glib 9 , gobject-introspection 10 , gtk3 11 , harfbuzz 12 , lib 13 , librsvg 14 , lua53Packages 15 , lua5_3 16 , makeWrapper 17 , pango 18 , wrapGAppsHook3 19 , writeText 20 }: 21 let 22 luaPackages = lua53Packages; 23 fennel = luaPackages.fennel; 24 lgi = luaPackages.buildLuaPackage { 25 pname = "lgi"; 26 version = "0.9.2-2"; 27 buildInputs = [ gobject-introspection ]; 28 nativeBuildInputs = [ pkg-config ]; 29 30 src = fetchFromGitHub { 31 owner = "lgi-devs"; 32 repo = "lgi"; 33 rev = "e06ad94c8a1c84e3cdb80cee293450a280dfcbc7"; 34 hash = "sha256-VYr/DV1FAyzPe6p6Quc1nmsHup23IAMfz532rL167Q4="; 35 }; 36 }; 37 luaDbusProxy = callPackage ./lua-dbus-proxy.nix { 38 inherit (luaPackages) buildLuaPackage; 39 inherit lgi; 40 lua = lua5_3; 41 }; 42 inifile = luaPackages.buildLuaPackage rec { 43 pname = "inifile"; 44 name = "${pname}-${version}"; 45 version = "1.0.2"; 46 src = fetchFromGitHub { 47 owner = "bartbes"; 48 repo = "inifile"; 49 rev = "f0b41a8a927f3413310510121c5767021957a4e0"; 50 sha256 = "1ry0q238vbp8wxwy4qp1aychh687lvbckcf647pmc03rwkakxm4r"; 51 }; 52 buildPhase = ":"; 53 installPhase = '' 54 mkdir -p "$out/share/lua/${lua.luaversion}" 55 cp inifile.lua "$out/share/lua/${lua.luaversion}/" 56 ''; 57 }; 58 lua = lua5_3.withPackages (ps: with ps; [ 59 luaDbusProxy 60 inifile 61 inspect 62 lgi 63 luafilesystem 64 luaposix 65 penlight 66 readline 67 ]); 68 in stdenv.mkDerivation { 69 pname = "saturn"; 70 version = "0.4.9"; # nearly Saturn 0.5 71 src =./.; 72 73 buildInputs = [ 74 lua 75 gtk3.dev 76 gobject-introspection # .dev 77 gdk-pixbuf 78 glib 79 ]; 80 nativeBuildInputs = [ 81 buildPackages.lua 82 gobject-introspection 83 makeWrapper 84 fennel 85 wrapGAppsHook3 86 ]; 87 88 makeFlags = [ "PREFIX=${placeholder "out"}" ]; 89 90 postInstall = '' 91 mkdir -p $out/share/dbus-1/services 92 93 cat <<SERVICE > $out/share/dbus-1/services/net.telent.saturn.service 94 [D-BUS Service] 95 Name=net.telent.saturn 96 Exec=$out/bin/saturn 97 SERVICE 98 99 wrapProgram $out/bin/saturn --set GDK_PIXBUF_MODULE_FILE ${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" 100 ''; 101 }