gnu: lua: Add lua-lgi.

* gnu/packages/lua.scm (lua-lgi): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
This commit is contained in:
doncatnip 2016-09-01 23:53:32 +02:00 committed by Leo Famulari
parent c0d47cadea
commit 03d8505f14
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08

View file

@ -5,6 +5,7 @@
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -29,7 +30,12 @@ (define-module (gnu packages lua)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (gnu packages glib)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gtk))
(define-public lua (define-public lua
(package (package
@ -260,3 +266,76 @@ (define-public lua5.1-sec
communication. It takes an already established TCP connection and creates a communication. It takes an already established TCP connection and creates a
secure session between the peers.") secure session between the peers.")
(license (package-license lua-5.1)))) (license (package-license lua-5.1))))
(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
'(#:make-flags (list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'set-env
(lambda* (#:key inputs #:allow-other-keys)
;; we need to load cairo dynamically
(let* ((cairo (string-append
(assoc-ref inputs "cairo") "/lib" )))
(setenv "LD_LIBRARY_PATH" cairo)
#t)))
(add-before 'build 'set-lua-version
(lambda _
;; lua version and therefore install directories are hardcoded
;; FIXME: This breaks when we update lua to >=5.3
(substitute* "./lgi/Makefile"
(("LUA_VERSION=5.1") "LUA_VERSION=5.2"))
#t))
(add-before 'check 'skip-test-gtk
(lambda _
;; 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.
;; Currently, awesome is the only package that uses lua-lgi but
;; it doesn't need or interact with GTK using lua-lgi.
(substitute* "./tests/test.lua"
(("'gtk.lua',") "-- 'gtk.lua',"))
#t))
(add-before 'check 'start-xserver-instance
(lambda* (#:key inputs #:allow-other-keys)
;; There must be a running X server during tests.
(system (format #f "~a/bin/Xvfb :1 &"
(assoc-ref inputs "xorg-server")))
(setenv "DISPLAY" ":1")
#t)))))
(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 license:expat)))