From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: Re: [PATCH] gnu: awesome: Add awesome-3.5 Date: Thu, 25 Aug 2016 14:50:29 +0000 Message-ID: <87eg5cuclm.fsf@we.make.ritual.n0.is> References: <20160825030933.06c8d523@gmail.com> <87inup42zl.fsf@we.make.ritual.n0.is> <20160825172521.19de318e@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36432) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcvzG-0001FH-SA for guix-devel@gnu.org; Thu, 25 Aug 2016 10:50:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcvzD-000651-K8 for guix-devel@gnu.org; Thu, 25 Aug 2016 10:50:33 -0400 Received: from mithlond.libertad.in-berlin.de ([2001:67c:1400:2490::1]:58149 helo=beleriand.n0.is) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcvzD-00064w-9l for guix-devel@gnu.org; Thu, 25 Aug 2016 10:50:31 -0400 In-Reply-To: <20160825172521.19de318e@gmail.com> 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: doncatnip Cc: guix-devel@gnu.org (Sending this back as a copy to the thread on the list.) Hi, Can you please CC the guix-devel@gnu.org list or just reply-to the list when replying with the intention to not message offlist? I think gnu.org does not set a reply-to thing, my email client does not care or know about such settings though. doncatnip writes: > On Thu, 25 Aug 2016 09:22:38 +0000 > ng0 wrote: > >> Hi, >> >> gno writes: >> >> > 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. >> >> Awesome! Many thanks for your first patch, I will test this in the >> next days, maybe even today. I still have an 3.5.9 config from >> another system in a backup. >> >> Ah. I see what you mean by you decided against updating. I think this >> is tricky. In my opinion awesome should provide the latest version, >> while for example awesome-3.4.15 would provide an older version. I use >> awesome, and this is what I would expect. When there was a version >> update, it was up to me to figure out if my config still worked and >> how to make it work again. >> I would vote for 3.5 as the new awesome and 3.4 inherits from this. >> But this can be applied after 3.5 is added I think? > > Yea, there might be a better (guix) way to do this. I just thought it > might be good if those changes don't interfere at all with current > system configs yet. Should be easy to change later on. > >> I did send in a patch to shorten the bloated description of awesome a >> couple of days ago, please wait with applying my patch. I will send in >> an update once we have this new awesome version update in tree. >> >> > From 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. >> >> You do more than just adding make flags, maybe let the commit message >> say that you added the CFLAGS: -DLUA_USE_POSIX, -DLUA_USE_DLOPEN and >> added LDFLAGS? I'm not sure how to express that, if at all. the git >> log should have other cases. >> Otherwise it looks good to me, this is just a formality the person >> commiting your patch(es) could also change on your behalf. > > Add make flags which enable ld support as per headline, but yea maybe > it's not descriptive enough. I took example from another patch recently > posted in this list. I'd apperciate the person commiting the patch > changing it to something more appropriate. > > Thanks for testing this ! > >> > --- >> > 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 >> > ;;; Copyright © 2014 Andreas Enge >> > ;;; Copyright © 2016 Efraim Flashner >> > +;;; Copyright © 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=-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 >> > 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 >> > 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 >> > ;;; Copyright © 2016 Carlo Zancanaro >> > ;;; Copyright © 2016 Ludovic Courtès >> > +;;; Copyright © 2016 doncatnip >> > ;;; >> > ;;; 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 >> > >> > -- ng0 For non-prism friendly talk find me on http://www.psyced.org