Some lua and awesome improvements

- Move lgi to luaPackages
- Use luaPackages in awesome and passthru lua
- Allow to pass lua modules to the awesome WM so that those can be used in the configuration

+75 -41
+26 -5
nixos/modules/services/x11/window-managers/awesome.nix
··· 5 let 6 7 cfg = config.services.xserver.windowManager.awesome; 8 9 in 10 ··· 14 15 options = { 16 17 - services.xserver.windowManager.awesome.enable = mkOption { 18 - default = false; 19 - description = "Enable the Awesome window manager."; 20 }; 21 22 }; ··· 30 { name = "awesome"; 31 start = 32 '' 33 - ${pkgs.awesome}/bin/awesome & 34 waitPID=$! 35 ''; 36 }; 37 38 - environment.systemPackages = [ pkgs.awesome ]; 39 40 }; 41
··· 5 let 6 7 cfg = config.services.xserver.windowManager.awesome; 8 + awesome = cfg.package; 9 10 in 11 ··· 15 16 options = { 17 18 + services.xserver.windowManager.awesome = { 19 + 20 + enable = mkEnableOption "Awesome window manager"; 21 + 22 + luaModules = mkOption { 23 + default = []; 24 + type = types.listOf types.package; 25 + description = "List of lua packages available for being used in the Awesome configuration."; 26 + example = literalExample "[ luaPackages.oocairo ]"; 27 + }; 28 + 29 + package = mkOption { 30 + default = null; 31 + type = types.nullOr types.package; 32 + description = "Package to use for running the Awesome WM."; 33 + apply = pkg: if pkg == null then pkgs.awesome else pkg; 34 + }; 35 + 36 }; 37 38 }; ··· 46 { name = "awesome"; 47 start = 48 '' 49 + ${concatMapStrings (pkg: '' 50 + export LUA_CPATH=$LUA_CPATH''${LUA_CPATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.so 51 + export LUA_PATH=$LUA_PATH''${LUA_PATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.lua 52 + '') cfg.luaModules} 53 + 54 + ${awesome}/bin/awesome & 55 waitPID=$! 56 ''; 57 }; 58 59 + environment.systemPackages = [ awesome ]; 60 61 }; 62
+5
pkgs/applications/window-managers/awesome/3.4.nix
··· 47 maintainers = with stdenv.lib.maintainers; [viric]; 48 platforms = with stdenv.lib.platforms; linux; 49 }; 50 }
··· 47 maintainers = with stdenv.lib.maintainers; [viric]; 48 platforms = with stdenv.lib.platforms; linux; 49 }; 50 + 51 + passthru = { 52 + inherit lua; 53 + }; 54 + 55 }
+13 -8
pkgs/applications/window-managers/awesome/default.nix
··· 1 - { stdenv, fetchurl, lua, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf 2 , xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs 3 - , xcb-util-cursor, lgi, makeWrapper, pango, gobjectIntrospection, unclutter 4 , compton, procps, iproute, coreutils, curl, alsaUtils, findutils, rxvt_unicode 5 , which, dbus, nettools, git, asciidoc, doxygen, xmlto, docbook_xml_dtd_45 6 , docbook_xsl }: 7 8 let 9 version = "3.5.5"; 10 - in 11 12 stdenv.mkDerivation rec { 13 name = "awesome-${version}"; ··· 32 dbus 33 doxygen 34 gdk_pixbuf 35 git 36 imagemagick 37 lgi ··· 60 61 LD_LIBRARY_PATH = "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib"; 62 GI_TYPELIB_PATH = "${pango}/lib/girepository-1.0"; 63 - LUA_CPATH = "${lgi}/lib/lua/5.1/?.so"; 64 - LUA_PATH = "${lgi}/share/lua/5.1/?.lua;${lgi}/share/lua/5.1/lgi/?.lua"; 65 66 postInstall = '' 67 wrapProgram $out/bin/awesome \ 68 - --set LUA_CPATH '"${lgi}/lib/lua/5.1/?.so"' \ 69 - --set LUA_PATH '"${lgi}/share/lua/5.1/?.lua;${lgi}/share/lua/5.1/lgi/?.lua"' \ 70 - --set GI_TYPELIB_PATH "${pango}/lib/girepository-1.0" \ 71 --prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \ 72 --prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${rxvt_unicode}/bin" 73 74 wrapProgram $out/bin/awesome-client \ 75 --prefix PATH : "${which}/bin" 76 ''; 77 }
··· 1 + { stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf 2 , xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs 3 + , xcb-util-cursor, makeWrapper, pango, gobjectIntrospection, unclutter 4 , compton, procps, iproute, coreutils, curl, alsaUtils, findutils, rxvt_unicode 5 , which, dbus, nettools, git, asciidoc, doxygen, xmlto, docbook_xml_dtd_45 6 , docbook_xsl }: 7 8 let 9 version = "3.5.5"; 10 + in with luaPackages; 11 12 stdenv.mkDerivation rec { 13 name = "awesome-${version}"; ··· 32 dbus 33 doxygen 34 gdk_pixbuf 35 + gobjectIntrospection 36 git 37 imagemagick 38 lgi ··· 61 62 LD_LIBRARY_PATH = "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib"; 63 GI_TYPELIB_PATH = "${pango}/lib/girepository-1.0"; 64 + LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so"; 65 + LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"; 66 67 postInstall = '' 68 wrapProgram $out/bin/awesome \ 69 + --prefix LUA_CPATH ";" '"${lgi}/lib/lua/${lua.luaversion}/?.so"' \ 70 + --prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \ 71 + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ 72 --prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \ 73 --prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${rxvt_unicode}/bin" 74 75 wrapProgram $out/bin/awesome-client \ 76 --prefix PATH : "${which}/bin" 77 ''; 78 + 79 + passthru = { 80 + inherit lua; 81 + }; 82 }
-24
pkgs/development/libraries/lgi/default.nix
··· 1 - { stdenv, fetchurl, pkgconfig, gobjectIntrospection, lua, glib }: 2 - 3 - stdenv.mkDerivation { 4 - name = "lgi-0.7.2"; 5 - 6 - src = fetchurl { 7 - url = https://github.com/pavouk/lgi/archive/0.7.2.tar.gz; 8 - sha256 = "0ihl7gg77b042vsfh0k7l53b7sl3d7mmrq8ns5lrsf71dzrr19bn"; 9 - }; 10 - 11 - meta = with stdenv.lib; { 12 - description = "Gobject-introspection based dynamic Lua binding to GObject based libraries"; 13 - homepage = https://github.com/pavouk/lgi; 14 - license = "custom"; 15 - maintainers = with maintainers; [ lovek323 ]; 16 - platforms = platforms.unix; 17 - }; 18 - 19 - buildInputs = [ glib gobjectIntrospection lua pkgconfig ]; 20 - 21 - preBuild = '' 22 - sed -i "s|/usr/local|$out|" lgi/Makefile 23 - ''; 24 - }
···
-2
pkgs/top-level/all-packages.nix
··· 5640 libpng = libpng12; 5641 }; 5642 5643 - lgi = callPackage ../development/libraries/lgi { }; 5644 - 5645 lib3ds = callPackage ../development/libraries/lib3ds { }; 5646 5647 libaacs = callPackage ../development/libraries/libaacs { };
··· 5640 libpng = libpng12; 5641 }; 5642 5643 lib3ds = callPackage ../development/libraries/lib3ds { }; 5644 5645 libaacs = callPackage ../development/libraries/libaacs { };
+31 -2
pkgs/top-level/lua-packages.nix
··· 5 for each package in a separate file: the call to the function would 6 be almost as must code as the function itself. */ 7 8 - { fetchurl, stdenv, lua, callPackage, unzip, zziplib 9 - , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat 10 }: 11 12 let ··· 14 isLua52 = lua.luaversion == "5.2"; 15 self = _self; 16 _self = with self; { 17 inherit (stdenv.lib) maintainers; 18 19 #define build lua package function ··· 255 license = stdenv.lib.licenses.mit; 256 }; 257 }; 258 }; in self
··· 5 for each package in a separate file: the call to the function would 6 be almost as must code as the function itself. */ 7 8 + { fetchurl, stdenv, lua, callPackage, unzip, zziplib, pkgconfig, libtool 9 + , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat, cairo 10 + , perl, gtk, python, glib, gobjectIntrospection 11 }: 12 13 let ··· 15 isLua52 = lua.luaversion == "5.2"; 16 self = _self; 17 _self = with self; { 18 + inherit lua; 19 inherit (stdenv.lib) maintainers; 20 21 #define build lua package function ··· 257 license = stdenv.lib.licenses.mit; 258 }; 259 }; 260 + 261 + lgi = stdenv.mkDerivation rec { 262 + name = "lgi-${version}"; 263 + version = "0.7.2"; 264 + 265 + src = fetchurl { 266 + url = "https://github.com/pavouk/lgi/archive/${version}.tar.gz"; 267 + sha256 = "0ihl7gg77b042vsfh0k7l53b7sl3d7mmrq8ns5lrsf71dzrr19bn"; 268 + }; 269 + 270 + meta = with stdenv.lib; { 271 + description = "GObject-introspection based dynamic Lua binding to GObject based libraries"; 272 + homepage = https://github.com/pavouk/lgi; 273 + license = "custom"; 274 + maintainers = with maintainers; [ lovek323 ]; 275 + platforms = platforms.unix; 276 + }; 277 + 278 + buildInputs = [ glib gobjectIntrospection lua pkgconfig ]; 279 + 280 + makeFlags = [ "LUA_VERSION=${lua.luaversion}" ]; 281 + 282 + preBuild = '' 283 + sed -i "s|/usr/local|$out|" lgi/Makefile 284 + ''; 285 + }; 286 + 287 }; in self