biscuit/pkgs/saturn/default.nix

100 lines
2.0 KiB
Nix

{ 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 <<SERVICE > $out/share/dbus-1/services/net.telent.saturn.service
[D-BUS Service]
Name=net.telent.saturn
Exec=$out/bin/saturn
SERVICE
'';
}