From mboxrd@z Thu Jan 1 00:00:00 1970 From: gno Subject: [PATCH] gnu: awesome: Add awesome-3.5 Date: Thu, 25 Aug 2016 03:09:33 +0200 Message-ID: <20160825030933.06c8d523@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/=ssPqLpyJ20FOkl+Qzvnqbs" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42807) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bchJ8-0007go-Bx for guix-devel@gnu.org; Wed, 24 Aug 2016 19:10:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bchJ4-0002xc-KB for guix-devel@gnu.org; Wed, 24 Aug 2016 19:10:06 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:34326) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bchJ4-0002xK-7U for guix-devel@gnu.org; Wed, 24 Aug 2016 19:10:02 -0400 Received: by mail-wm0-x243.google.com with SMTP id q128so4823155wma.1 for ; Wed, 24 Aug 2016 16:10:02 -0700 (PDT) Received: from localhost (pD9EACE86.dip0.t-ipconnect.de. [217.234.206.134]) by smtp.gmail.com with ESMTPSA id gg10sm12217315wjd.4.2016.08.24.16.10.00 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 24 Aug 2016 16:10:00 -0700 (PDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --MP_/=ssPqLpyJ20FOkl+Qzvnqbs Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline 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. --MP_/=ssPqLpyJ20FOkl+Qzvnqbs Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-lua-Enable-dynamic-library-support.patch =46rom cd3175f242450169b269ead777be6c7835476fba Mon Sep 17 00:00:00 2001 From: doncatnip 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 =C2=A9 2014 Mark H Weaver ;;; Copyright =C2=A9 2014 Andreas Enge ;;; Copyright =C2=A9 2016 Efraim Flashner +;;; Copyright =C2=A9 2016 doncatnip ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +52,10 @@ (modify-phases %standard-phases (delete 'configure) (replace 'build - (lambda _ (zero? (system* "make" "CFLAGS=3D-fPIC" "linux")))) + (lambda _ (zero? (system* + "make" "LDFLAGS=3D-ldl" + "CFLAGS=3D-fPIC -DLUA_USE_DLOPEN -DLUA_USE_P= OSIX" + "linux")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) --=20 2.9.3 --MP_/=ssPqLpyJ20FOkl+Qzvnqbs Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0002-gnu-lua-Add-lua-lgi.patch >From 995b67847508a70782eb522cda52b0aa36a20bd2 Mon Sep 17 00:00:00 2001 From: doncatnip 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 --MP_/=ssPqLpyJ20FOkl+Qzvnqbs Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0003-gnu-wm-Add-awesome-3.5.patch =46rom f75ac65b1eeafe333b486a98cc0bb4ad55d67ee7 Mon Sep 17 00:00:00 2001 From: doncatnip 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 =C2=A9 2016 Al McElrath ;;; Copyright =C2=A9 2016 Carlo Zancanaro ;;; Copyright =C2=A9 2016 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2016 doncatnip ;;; ;;; This file is part of GNU Guix. ;;; @@ -465,3 +466,91 @@ Windows are grouped by tags in awesome. Each window c= an 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 "0kynair1ykr74b39a4gcm2y24viial64337cf26nhlc7azjbby6= 7")) + (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=3Doff") + + #: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 bin= ary + ;; 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_TYP= ELIB_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")))))))))))) --=20 2.9.3 --MP_/=ssPqLpyJ20FOkl+Qzvnqbs--