summary refs log tree commit diff
path: root/gnu/packages/wm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/wm.scm')
-rw-r--r--gnu/packages/wm.scm77
1 files changed, 49 insertions, 28 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2cc9f44cdc..710a93397f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -382,7 +384,7 @@ experience.")
 (define-public awesome
   (package
     (name "awesome")
-    (version "3.4.15")
+    (version "3.5.9")
     (source
      (origin (method url-fetch)
              (uri (string-append
@@ -390,7 +392,7 @@ experience.")
                    version ".tar.xz"))
              (sha256
               (base32
-               "1m910lr7wkw2dgzmirfvz7dasfswhhccdf65l21iiciv24c3w1bb"))
+               "0kynair1ykr74b39a4gcm2y24viial64337cf26nhlc7azjbby67"))
              (modules '((guix build utils)
                         (srfi srfi-19)))
              (snippet
@@ -417,12 +419,14 @@ experience.")
               ("dbus" ,dbus)
               ("gdk-pixbuf" ,gdk-pixbuf)
               ("glib" ,glib)
+              ("gobject-introspection" ,gobject-introspection)
               ("imlib2" ,imlib2)
               ("libev" ,libev)
               ("libxcb" ,libxcb)
               ("libxcursor" ,libxcursor)
               ("libxdg-basedir" ,libxdg-basedir)
-              ("lua" ,lua-5.1)
+              ("lua" ,lua)
+              ("lua-lgi",lua-lgi)
               ("pango" ,pango)
               ("startup-notification" ,startup-notification)
               ("xcb-util" ,xcb-util)
@@ -436,32 +440,49 @@ experience.")
        ;; '--no-name' is used, which removes timestamps from gzip output.
        #:configure-flags '("-DCOMPRESS_MANPAGES=off")
 
-       #:phases (modify-phases %standard-phases
-                  (add-before 'build 'xmlto-skip-validation
-                    (lambda _
-                      ;; We can't download the necessary schema, so so skip
-                      ;; validation and assume they're valid.
-                      (substitute* "../build/CMakeFiles/man.dir/build.make"
-                        (("/xmlto")
-                         (string-append "/xmlto --skip-validation")))
-                      #t))
-                  (replace 'check
-                    (lambda _
-                      ;; There aren't any tests, so just make sure the binary
-                      ;; gets built and can be run successfully.
-                      (zero? (system* "../build/awesome" "-v")))))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'xmlto-skip-validation
+           (lambda _
+             ;; We can't download the necessary schema, so so skip
+             ;; validation and assume they're valid.
+             (substitute* "../build/CMakeFiles/man.dir/build.make"
+               (("/xmlto")
+                (string-append "/xmlto --skip-validation")))
+             #t))
+         (add-before 'configure 'set-lua-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The build process needs to load cairo dynamically.
+             (let* ((cairo (string-append
+                             (assoc-ref inputs "cairo") "/lib" ))
+                    (lua-lgi (assoc-ref inputs "lua-lgi") ))
+               (setenv "LD_LIBRARY_PATH" cairo )
+               (setenv "LUA_PATH" (string-append lua-lgi
+                                                 "/share/lua/5.2/?.lua"))
+               (setenv "LUA_CPATH" (string-append lua-lgi
+                                                  "/lib/lua/5.2/?.so"))
+               #t)))
+         (replace 'check
+           (lambda _
+             ;; There aren't any tests, so just make sure the binary
+             ;; gets built and can be run successfully.
+             (zero? (system* "../build/awesome" "-v"))))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((awesome (assoc-ref outputs "out"))
+                    (cairo (string-append
+                             (assoc-ref inputs "cairo") "/lib" ))
+                    (lua-lgi (assoc-ref inputs "lua-lgi") ))
+               (wrap-program (string-append awesome "/bin/awesome")
+                 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
+                 `("LD_LIBRARY_PATH" suffix (, cairo))
+                 `("LUA_PATH" suffix (,(string-append lua-lgi
+                                                      "/share/lua/5.2/?.lua")))
+                 `("LUA_CPATH" suffix (,(string-append
+                                          lua-lgi "/lib/lua/5.2/?.so"))))))))))
     (synopsis "Highly configurable window manager")
     (description
-     "awesome is a window manager for X.  It manages windows in different
-layouts, like floating or tiled.  Any layout can be applied dynamically,
-optimizing the environment for the application in use and the task currently
-being performed.
-
-In a tiled layout, windows are managed in a master and stacking area.  In a
-floating layout windows can be resized and moved freely.  Dialog windows are
-always managed as floating, regardless of the layout currently applied.
-
-Windows are grouped by tags in awesome.  Each window can be tagged with one or
-more tags.  Selecting certain tags displays all windows with these tags.")
+     "Awesome has been designed as a framework window manager.  It is fast, small,
+dynamic and extensible using the Lua programming language.")
     (license license:gpl2+)
     (home-page "https://awesome.naquadah.org/")))