default.nix (2356B)
1 { stdenv 2 , callPackage 3 , debug ? false 4 , fetchFromGitHub 5 6 , fennel 7 , glib-networking 8 , gobject-introspection 9 , webkitgtk 10 , gtk3 11 , gtk-layer-shell 12 , lua5_3 13 , socat 14 , cpio 15 16 , makeWrapper 17 } : 18 let 19 lua = lua5_3; 20 fennel_ = (fennel.override { lua = lua5_3; }); 21 luaDbusProxy = callPackage ./lua-dbus-proxy.nix { 22 inherit (lua.pkgs) lgi buildLuaPackage; 23 inherit lua; 24 }; 25 glib_networking_gio = "${glib-networking}/lib/gio/modules"; 26 inifile = lua.pkgs.buildLuaPackage rec { 27 pname = "inifile"; 28 name = "${pname}-${version}"; 29 version = "1.0.2"; 30 src = fetchFromGitHub { 31 owner = "bartbes"; 32 repo = "inifile"; 33 rev = "f0b41a8a927f3413310510121c5767021957a4e0"; 34 sha256 = "1ry0q238vbp8wxwy4qp1aychh687lvbckcf647pmc03rwkakxm4r"; 35 }; 36 buildPhase = ":"; 37 installPhase = '' 38 mkdir -p "$out/share/lua/${lua.luaversion}" 39 cp inifile.lua "$out/share/lua/${lua.luaversion}/" 40 ''; 41 }; 42 43 luaWithPackages = lua5_3.withPackages (ps: with ps; [ 44 (toLuaModule fennel_) 45 inifile 46 luafilesystem 47 lgi 48 luaposix 49 luaDbusProxy 50 penlight 51 52 ]); 53 kiwmi = callPackage ./kiwmi.nix { lua = lua5_3; inherit debug; }; 54 GIO_EXTRA_MODULES = "${glib-networking}/lib/gio/modules"; 55 in 56 stdenv.mkDerivation { 57 pname = "eufon"; 58 version = "0.1"; 59 inherit GIO_EXTRA_MODULES; 60 buildInputs = [ 61 luaWithPackages 62 kiwmi 63 glib-networking 64 gobject-introspection.dev 65 gtk-layer-shell 66 gtk3 67 webkitgtk 68 ]; 69 nativeBuildInputs = [ cpio makeWrapper ]; 70 71 installPhase = '' 72 export LUA_PATH="`lua -e 'print(package.path)'`" 73 export LUA_CPATH="`lua -e 'print(package.cpath)'`" 74 mkdir -p $out/bin 75 find . -name kiwmi -prune \ 76 -o -type l -prune \ 77 -o -name git -prune \ 78 -o -print0 | cpio -0 -v --pass-through $out 79 substitute bin/eufonctl.sh $out/bin/eufonctl \ 80 --replace SOCAT=socat SOCAT=${socat}/bin/socat 81 makeWrapper ${kiwmi}/bin/kiwmi $out/bin/eufon \ 82 --set LUA_PATH "$out/?.lua;$LUA_PATH" \ 83 --set LUA_CPATH "$LUA_CPATH" \ 84 --prefix PATH : ${kiwmi}/bin:${luaWithPackages}/bin \ 85 --set EUFON_PATH "$out" \ 86 --set GIO_EXTRA_MODULES "${glib-networking}/lib/gio/modules" \ 87 --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \ 88 --add-flags "-c $out/init.lua" 89 90 chmod +x $out/bin/eufon 91 ''; 92 93 src = ./.; 94 }