diff options
author | Vinícius dos Santos Oliveira <vini.ipsmaker@gmail.com> | 2021-02-25 10:22:20 -0300 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2021-02-27 12:08:18 +0100 |
commit | f4ac7571766d4192e9e7d4867ff1f589f0dd1c4b (patch) | |
tree | d4d0a33ba0175d85b480fc583d34d87f64d89929 /gnu | |
parent | 68a9e933c7e319085541ba8e8e0e932ade36d8a4 (diff) |
gnu: Add emilua.
* gnu/packages/lua.scm (emilua): New variable.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/lua.scm | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index c03eea3c70..5f9f859e93 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Simon South <simon@simonsouth.net> ;;; Copyright © 2020 Paul A. Patience <paul@apatience.com> +;;; Copyright © 2021 Vinícius dos Santos Oliveira <vini.ipsmaker@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,8 +38,11 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages gcc) + #:use-module (gnu packages build-tools) #:use-module (gnu packages readline) #:use-module (gnu packages m4) #:use-module (gnu packages tls) @@ -47,6 +51,11 @@ #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages boost) + #:use-module (gnu packages tls) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages vim) + #:use-module (gnu packages re2c) #:use-module (gnu packages xorg) #:use-module (gnu packages gtk)) @@ -1096,6 +1105,59 @@ signals to Linux processes.") shell command executions.") (license license:bsd-3))) +(define-public emilua + (package + (name "emilua") + (version "0.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/emilua/emilua.git") + (commit (string-append "v" version)) + ;; Current version requires bundled CLI11 and fmt, but at some + ;; future release the ones found in the system could be used + ;; instead. Current version also requires Trial.Protocol and + ;; the HTTP lib developed as part of GSoC 2014 for Boost, but + ;; these are dependencies unlikely to be "unbundled" in future + ;; releases. + (recursive? #t))) + (sha256 + (base32 + "1d6k5v6x85fbvz2ijq1imnfdwvqmsav4xp021a5v3ah4mgy7yann")))) + (build-system meson-build-system) + (arguments + `(#:meson ,meson-0.55 + ;; Tests are disabled for now due to an issue that affecs guix: + ;; <https://gitlab.com/emilua/emilua/-/issues/22> + #:configure-flags '("-Denable_http=false" "-Denable_tests=false"))) + (native-inputs + `(("gcc" ,gcc-10) ; gcc-7 is too old for our C++17 needs + ("luajit-lua52-openresty" ,luajit-lua52-openresty) + ("pkg-config" ,pkg-config) + ("re2c" ,re2c) + ("xxd" ,xxd))) + (inputs + `(("boost" ,boost) + ("boost-static" ,boost-static) + ;; LuaJIT has a 2GiB addressing limit[1] that has been fixed on OpenResty + ;; fork. Emilua is severely affected by this limit, so the upstream package + ;; is avoided. Emilua also depends on the -DLUAJIT_ENABLE_LUA52COMPAT + ;; configure flag[2] for some features to work (e.g. __pairs on HTTP + ;; headers). + ;; + ;; [1] <http://hacksoflife.blogspot.com/2012/12/integrating-luajit-with-x-plane-64-bit.html> + ;; [2] <http://luajit.org/extensions.html#lua52> + ("luajit-lua52-openresty" ,luajit-lua52-openresty) + ("ncurses" ,ncurses) + ("openssl" ,openssl))) + (home-page "https://gitlab.com/emilua/emilua") + (synopsis "Lua execution engine") + (description + "Emilua is a LuaJIT-based Lua execution engine that supports async IO, +fibers and actor-inspired threading. The experimental builtin HTTP module is +enabled.") + (license license:boost1.0))) + (define-public fennel (package (name "fennel") |