Hi guix !
Sure hope I'm doing this right as I'm new to this.
These patches add Awesome 3.5.9 to the repository. I decided against
updating since it may break peoples configurations. Awesome had API
changes in between 3.4 and 3.5.
Please have a look.
From cd3175f242450169b269ead777be6c7835476fba Mon Sep 17 00:00:00 2001
From: doncatnip <gno...@gmail.com>
Date: Thu, 25 Aug 2016 01:43:53 +0200
Subject: [PATCH 1/3] gnu: lua: Enable dynamic library support.
* gnu/packages/lua.scm: (lua)[arguments]: Add make flags.
---
gnu/packages/lua.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index b4b5dee..c68a3ff 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2014 Mark H Weaver <m...@netris.org>
;;; Copyright © 2014 Andreas Enge <andr...@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
+;;; Copyright © 2016 doncatnip <gno...@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,7 +52,10 @@
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
- (lambda _ (zero? (system* "make" "CFLAGS=-fPIC" "linux"))))
+ (lambda _ (zero? (system*
+ "make" "LDFLAGS=-ldl"
+ "CFLAGS=-fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX"
+ "linux"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
--
2.9.3
>From 995b67847508a70782eb522cda52b0aa36a20bd2 Mon Sep 17 00:00:00 2001
From: doncatnip <gno...@gmail.com>
Date: Thu, 25 Aug 2016 02:22:37 +0200
Subject: [PATCH 2/3] gnu: lua: Add lua-lgi.
* gnu/packages/lua.scm (lua-lgi): New variable.
---
gnu/packages/lua.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index c68a3ff..8af0318 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -27,7 +27,12 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
- #:use-module (gnu packages readline))
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages gtk))
(define-public lua
(package
@@ -111,3 +116,67 @@ programming language. Lua is a powerful, dynamic and light-weight programming
language. It may be embedded or used as a general-purpose, stand-alone
language.")
(license x11)))
+
+(define-public lua-lgi
+ (package
+ (name "lua-lgi")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/pavouk/lgi/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256 (base32 "1fmgdl5y4ph3yc6ycg865s3vai1rjkyda61cgqxk6zd13hmznw0c"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ ; needs to load cairo dynamically
+ (let* ((cairo (string-append
+ (assoc-ref inputs "cairo") "/lib" )))
+ (setenv "LD_LIBRARY_PATH" cairo ))
+
+ ; FIXME: Skip GTK tests:
+ ; gtk3 - can't get it to run with the xorg-server config below
+ ; and some non-gtk tests will also fail
+ ; gtk2 - lots of functions aren't implemented
+ ; We choose gtk2 as the lesser evil and simply skip the test.
+ ; as of 22/08/2016 awesome is the only package dependent on lgi but
+ ; it doesn't need or interact with gtk using lgi.
+ (substitute* "./tests/test.lua"
+ (("'gtk.lua',") "-- 'gtk.lua',"))
+ ; lua version and therefore install directories are hardcoded
+ (substitute* "./lgi/Makefile"
+ (("LUA_VERSION=5.1") "LUA_VERSION=5.2"))
+
+ ;; There must be a running X server during tests.
+ (system (format #f "~a/bin/Xvfb :1 &" (assoc-ref inputs "xorg-server")))
+ (setenv "DISPLAY" ":1"))))
+
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))))))
+
+ (inputs
+ `(("gobject-introspection" ,gobject-introspection)
+ ("glib" ,glib)
+ ("pango", pango)
+ ("gtk", gtk+-2)
+ ("lua" ,lua)
+ ("cairo" ,cairo)
+ ("libffi" ,libffi)
+ ("xorg-server", xorg-server)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/pavouk/lgi/")
+ (synopsis "Lua bridge to GObject based libraries")
+ (description
+ "LGI is gobject-introspection based dynamic Lua binding to GObject
+based libraries. It allows using GObject-based libraries directly from Lua.
+Notable examples are GTK+, GStreamer and Webkit.")
+ (license expat)))
--
2.9.3
From f75ac65b1eeafe333b486a98cc0bb4ad55d67ee7 Mon Sep 17 00:00:00 2001
From: doncatnip <gno...@gmail.com>
Date: Thu, 25 Aug 2016 02:31:07 +0200
Subject: [PATCH 3/3] gnu: wm: Add awesome-3.5.
* gnu/packages/wm.scm (awesome-3.5): New variable.
---
gnu/packages/wm.scm | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2cc9f44..ff21da8 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2016 Al McElrath <he...@yrns.org>
;;; Copyright © 2016 Carlo Zancanaro <ca...@zancanaro.id.au>
;;; Copyright © 2016 Ludovic Courtès <l...@gnu.org>
+;;; Copyright © 2016 doncatnip <gno...@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -465,3 +466,91 @@ 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.")
(license license:gpl2+)
(home-page "https://awesome.naquadah.org/")))
+
+(define-public awesome-3.5
+ (package (inherit awesome)
+ (version "3.5.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://awesome.naquadah.org/download/awesome-"
+ version ".tar.xz"))
+ (sha256 (base32 "0kynair1ykr74b39a4gcm2y24viial64337cf26nhlc7azjbby67"))
+ (modules '((guix build utils)
+ (srfi srfi-19)))
+ (snippet
+ ;; Remove non-reproducible timestamp and use the date of the
+ ;; source file instead.
+ '(substitute* "common/version.c"
+ (("__DATE__ \" \" __TIME__")
+ (date->string
+ (time-utc->date
+ (make-time time-utc 0
+ (stat:mtime (stat "awesome.c"))))
+ "\"~c\""))))
+ (patches (search-patches "awesome-reproducible-png.patch"))))
+
+ (inputs `(("gobject-introspection" ,gobject-introspection)
+ ("lua-lgi",lua-lgi)
+ ("cairo" ,cairo)
+ ("dbus" ,dbus)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("glib" ,glib)
+ ("imlib2" ,imlib2)
+ ("libev" ,libev)
+ ("libxcb" ,libxcb)
+ ("libxcursor" ,libxcursor)
+ ("libxdg-basedir" ,libxdg-basedir)
+ ("lua" ,lua)
+ ("pango" ,pango)
+ ("startup-notification" ,startup-notification)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-cursor" ,xcb-util-cursor)
+ ("xcb-util-image" ,xcb-util-image)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-renderutil" ,xcb-util-renderutil)
+ ("xcb-util-wm" ,xcb-util-wm)))
+
+ (arguments
+ `(;; Let compression happen in our 'compress-documentation' phase so that
+ ;; '--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))
+ (add-before 'configure 'set-lua-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ; 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")))))
+ (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"))))))))))))
--
2.9.3