From: ng0 <ng0@we.make.ritual.n0.is>
To: doncatnip <gnopap@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] gnu: awesome: Add awesome-3.5
Date: Thu, 25 Aug 2016 14:50:29 +0000 [thread overview]
Message-ID: <87eg5cuclm.fsf@we.make.ritual.n0.is> (raw)
In-Reply-To: <20160825172521.19de318e@gmail.com>
(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 <gnopap@gmail.com> writes:
> On Thu, 25 Aug 2016 09:22:38 +0000
> ng0 <ng0@we.make.ritual.n0.is> wrote:
>
>> Hi,
>>
>> gno <gnopap@gmail.com> 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 <gnopap@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.
>>
>> 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 <mhw@netris.org>
>> > ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
>> > ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
>> > +;;; Copyright © 2016 doncatnip <gnopap@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 <gnopap@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 <gnopap@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 <hello@yrns.org>
>> > ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
>> > ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
>> > +;;; Copyright © 2016 doncatnip <gnopap@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
>> >
>>
>
--
ng0
For non-prism friendly talk find me on http://www.psyced.org
next prev parent reply other threads:[~2016-08-25 14:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-25 1:09 [PATCH] gnu: awesome: Add awesome-3.5 gno
2016-08-25 9:22 ` ng0
2016-08-25 9:37 ` ng0
2016-08-25 9:59 ` ng0
2016-08-25 14:47 ` ng0
2016-08-25 17:26 ` doncatnip
2016-08-26 13:33 ` ng0
2016-08-26 15:19 ` doncatnip
[not found] ` <20160825172521.19de318e@gmail.com>
2016-08-25 14:50 ` ng0 [this message]
2016-08-25 17:24 ` doncatnip
2016-08-30 6:56 ` Leo Famulari
2016-08-30 8:52 ` gno
2016-08-30 18:26 ` Leo Famulari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eg5cuclm.fsf@we.make.ritual.n0.is \
--to=ng0@we.make.ritual.n0.is \
--cc=gnopap@gmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).