guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/07: gnu: emilua: Update to 0.4.3.


From: guix-commits
Subject: 01/07: gnu: emilua: Update to 0.4.3.
Date: Wed, 13 Sep 2023 04:23:22 -0400 (EDT)

cbaines pushed a commit to branch master
in repository guix.

commit 10bc07671e2a3a699d4f56e405f50d766323319a
Author: Valter Nazianzeno <manipuladordedados@gmail.com>
AuthorDate: Thu Aug 24 08:08:25 2023 -0300

    gnu: emilua: Update to 0.4.3.
    
    * gnu/packages/lua.scm (emilua): Update to 0.4.3.
    [source]: Remove recursive? and replace with inputs.
    [arguments]: Update style, add patch phase, enable tests and enable some 
more
    features.
    [native-inputs]: Add gperf, gawk and xdd.
    [inputs]: Add emilua-http and trial-protocol as origin is no longer 
recursive,
    also add serd, sord, libcap and liburing.
    
    Signed-off-by: Christopher Baines <mail@cbaines.net>
---
 gnu/packages/lua.scm | 151 +++++++++++++++++++++++++++++++++------------------
 1 file changed, 97 insertions(+), 54 deletions(-)

diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 405f8511cb..3b58952911 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
+;;; Copyright © 2023 Valter Nazianzeno <manipuladordedados@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,14 +51,18 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages re2c)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages tls)
@@ -1129,63 +1134,101 @@ shell command executions.")
 
 (define-public emilua
   (package
-   (name "emilua")
-   (version "0.3.2")
-   (source (origin
-            (method git-fetch)
-            (uri (git-reference
-                  (url "https://gitlab.com/emilua/emilua.git";)
-                  (commit (string-append "v" version))
-                  ;; Current version requires Trial.Protocol and the HTTP lib
-                  ;; developed as part of GSoC 2014 for Boost, and these are
-                  ;; dependencies unlikely to be "unbundled" in future 
releases.
-                  (recursive? #t)))
-            (file-name (git-file-name name version))
-            (sha256
-             (base32
-              "1999bgrh52124a5g4qizav3x257ff2brjr855srpm1jv1nxzbygv"))))
-   (build-system meson-build-system)
-   (arguments
-    `(;; Tests are disabled for now due to an issue that affecs guix:
-      ;; <https://gitlab.com/emilua/emilua/-/issues/22>
+    (name "emilua")
+    (version "0.4.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/emilua/emilua.git";)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dwag2pyqc0g86rris4w4fzafmz9a6kiqd47vdq7hl3a1lyi74mx"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/emilua_gperf.awk"
+                (("/usr/bin/env") (which "env")))
+              (substitute* "src/system.cpp"
+                (("P_PIDFD") "P_PID"))
+
+              (copy-recursively
+               (assoc-ref inputs "emilua-http")
+               "emilua-http")
+              (copy-recursively
+               (assoc-ref inputs "trial-protocol")
+               "trial-protocol")
+
+              (with-directory-excursion "subprojects"
+                (symlink "../emilua-http" "emilua-http")
+                (copy-file "packagefiles/emilua-http/meson.build"
+                           "emilua-http/meson.build")
+                (symlink "../trial-protocol" "trial-protocol")
+                (copy-file "packagefiles/trial.protocol/meson.build"
+                           "trial-protocol/meson.build")))))
       #:configure-flags
-      (list "-Denable_http=true"
-            "-Denable_tests=false"
-            "-Denable_manpages=false"
-            "-Dversion_suffix=-guix1")))
-   (native-inputs
-    (list luajit-lua52-openresty
-          pkg-config
-          re2c
-          xxd))
-   (inputs
-    (list boost
-          boost-static
-          fmt-7
-          ;; 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
-          ncurses
-          openssl))
-   (native-search-paths
-    (list
-     (search-path-specification
-      (variable "EMILUA_PATH")
-      (files
-       (list (string-append "lib/emilua-" (version-major+minor version)))))))
-   (home-page "https://gitlab.com/emilua/emilua";)
-   (synopsis "Lua execution engine")
-   (description
-    "Emilua is a LuaJIT-based Lua execution engine that supports async IO,
+      #~(list "-Denable_http=true"
+              "-Denable_file_io=true"
+              "-Denable_io_uring=true"
+              ;; TODO: Linux namespaces are disabled for now due to conflict
+              ;; with some packages in guix.
+              "-Denable_linux_namespaces=false"
+              "-Denable_manpages=false"
+              "-Dversion_suffix=-guix1")))
+    (native-inputs
+     (list luajit-lua52-openresty
+           re2c
+           gperf
+           xxd
+           pkg-config))
+    (inputs
+     `(("emilua-http"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/BoostGSoC14/boost.http";)
+                 (commit "93ae527c89ffc517862e1f5f54c8a257278f1195")))
+           (sha256
+            (base32
+             "0jm7fw0cjd3s9zkkvyh6mcj6z32hcy7l9bszv74l92qk15ivvp9h"))))
+       ("trial-protocol"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/breese/trial.protocol";)
+                 (commit "79149f604a49b8dfec57857ca28aaf508069b669")))
+           (sha256
+            (base32
+             "0k42i5b4v3zz5x0r3dssiymgmn2x8zg4fzdksya9aggxgigippsx"))))
+       ("boost" ,boost)
+       ("boost-static" ,boost-static)
+       ("fmt" ,fmt-8)
+       ("gcc" ,gcc-12)
+       ("luajit-lua52-openresty" ,luajit-lua52-openresty)
+       ("ncurses" ,ncurses)
+       ("serd" ,serd)
+       ("sord" ,sord)
+       ("libcap" ,libcap)
+       ("liburing" ,liburing)
+       ("openssl" ,openssl)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "EMILUA_PATH")
+       (files
+        (list (string-append "lib/emilua-" (version-major+minor version)))))))
+    (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)))
+    (license license:boost1.0)))
 
 (define-public fennel
   (package



reply via email to

[Prev in Thread] Current Thread [Next in Thread]