From mboxrd@z Thu Jan 1 00:00:00 1970 From: doncatnip Subject: Re: [PATCH] gnu: awesome: Add awesome-3.5 Date: Thu, 25 Aug 2016 19:24:10 +0200 Message-ID: <20160825192410.7afd41b4@gmail.com> References: <20160825030933.06c8d523@gmail.com> <87inup42zl.fsf@we.make.ritual.n0.is> <20160825172521.19de318e@gmail.com> <87eg5cuclm.fsf@we.make.ritual.n0.is> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcwVv-0004ws-EQ for guix-devel@gnu.org; Thu, 25 Aug 2016 11:24:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcwVr-0006NG-1i for guix-devel@gnu.org; Thu, 25 Aug 2016 11:24:18 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:33452) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcwVq-0006Ml-MA for guix-devel@gnu.org; Thu, 25 Aug 2016 11:24:14 -0400 Received: by mail-wm0-x244.google.com with SMTP id o80so7898155wme.0 for ; Thu, 25 Aug 2016 08:24:14 -0700 (PDT) In-Reply-To: <87eg5cuclm.fsf@we.make.ritual.n0.is> 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: ng0 Cc: guix-devel@gnu.org On Thu, 25 Aug 2016 14:50:29 +0000 ng0 wrote: Hi ! Of course. I didn't notice. > (Sending this back as a copy to the thread on the list.) >=20 > Hi, >=20 > 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? >=20 > I think gnu.org does not set a reply-to thing, my email client does > not care or know about such settings though. >=20 > doncatnip writes: >=20 > > On Thu, 25 Aug 2016 09:22:38 +0000 > > ng0 wrote: > > =20 > >> Hi, > >>=20 > >> gno writes: > >> =20 > >> > 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. =20 > >>=20 > >> 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. > >>=20 > >> 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? =20 > > > > 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. > > =20 > >> 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.=20 > >> > 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. =20 > >>=20 > >> 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. =20 > > > > 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 ! > > =20 > >> > --- > >> > 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_POSIX" > >> > + "linux")))) > >> > (replace 'install > >> > (lambda* (#:key outputs #:allow-other-keys) > >> > (let ((out (assoc-ref outputs "out"))) > >> > --=20 > >> > 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)) > >> > =20 > >> > (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=3D5.1") "LUA_VERSION=3D5.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=3Dgcc" > >> > + (string-append "PREFIX=3D" (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))) > >> > --=20 > >> > 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 =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 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=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 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")))))))))))) --=20 > >> > 2.9.3 > >> > =20 > >> =20 > > =20 >=20