about summary refs log tree commit diff
path: root/pkgs/development/interpreters/emilua
diff options
context:
space:
mode:
authorValter Nazianzeno <manipuladordedados@gmail.com>2023-09-02 21:57:32 +0000
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-09-06 02:25:43 +0000
commit05f82739df7cf884907db8ee9b22c76a7efb6edb (patch)
tree64554f35aae84ae81b3bf53f9dda7554c866ade3 /pkgs/development/interpreters/emilua
parent9814d9d6c971c80c0f1dac448887a8ff76a7d165 (diff)
emilua: init at 0.4.3
Diffstat (limited to 'pkgs/development/interpreters/emilua')
-rw-r--r--pkgs/development/interpreters/emilua/default.nix111
1 files changed, 111 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/emilua/default.nix b/pkgs/development/interpreters/emilua/default.nix
new file mode 100644
index 0000000000000..a938d19736ec5
--- /dev/null
+++ b/pkgs/development/interpreters/emilua/default.nix
@@ -0,0 +1,111 @@
+{ lib
+, stdenv
+, meson
+, ninja
+, fetchFromGitHub
+, fetchFromGitLab
+, re2c
+, gperf
+, gawk
+, xxd
+, pkg-config
+, boost182
+, fmt
+, luajit_openresty
+, ncurses
+, serd
+, sord
+, libcap
+, liburing
+, openssl
+, asciidoctor
+}:
+
+let
+  emilua-http-wrap = fetchFromGitHub {
+      owner = "BoostGSoC14";
+      repo = "boost.http";
+      rev = "93ae527c89ffc517862e1f5f54c8a257278f1195";
+      name = "emilua-http";
+      hash = "sha256-MN29YwkTi0TJ2V+vRI9nUIxvJKsG+j3nT3o0yQB3p0o=";
+  };
+
+  trial-protocol-wrap = fetchFromGitHub {
+      owner = "breese";
+      repo = "trial.protocol";
+      rev = "79149f604a49b8dfec57857ca28aaf508069b669";
+      name = "trial-protocol";
+      hash = "sha256-Xd8bX3z9PZWU17N9R95HXdj6qo9at5FBL/+PTVaJgkw=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "emilua";
+  version = "0.4.3";
+
+  src = fetchFromGitLab {
+      owner = "emilua";
+      repo = "emilua";
+      rev = "v${version}";
+      hash = "sha256-vZITPQ1qUHhw24c0HKdR6VenviOc6JizQQ8w7K94irc=";
+  };
+
+  buildInputs = [
+    luajit_openresty
+    boost182
+    fmt
+    ncurses
+    serd
+    sord
+    libcap
+    liburing
+    openssl
+  ];
+
+  nativeBuildInputs = [
+    re2c
+    gperf
+    gawk
+    xxd
+    pkg-config
+    asciidoctor
+    meson
+    ninja
+  ];
+
+  # Meson is no longer able to pick up Boost automatically.
+  # https://github.com/NixOS/nixpkgs/issues/86131
+  env = {
+    BOOST_INCLUDEDIR = "${lib.getDev boost182}/include";
+    BOOST_LIBRARYDIR = "${lib.getLib boost182}/lib";
+  };
+
+  mesonFlags = [
+    "-Dversion_suffix=-nixpkgs1"
+    "-Denable_http=true"
+    "-Denable_file_io=true"
+    "-Denable_io_uring=true"
+    "-Denable_linux_namespaces=true"
+    "-Denable_tests=true"
+    "-Denable_manpages=true"
+  ];
+
+  postPatch = ''
+    pushd subprojects
+    cp -r ${emilua-http-wrap} emilua-http
+    cp -r ${trial-protocol-wrap} trial-protocol
+    chmod +w emilua-http trial-protocol
+    cp "packagefiles/emilua-http/meson.build" "emilua-http/"
+    cp "packagefiles/trial.protocol/meson.build" "trial-protocol/"
+    popd
+
+    substituteInPlace src/emilua_gperf.awk  --replace '#!/usr/bin/env -S gawk --file' '#!${gawk}/bin/gawk -f'
+  '';
+
+  meta = with lib; {
+    description = "Lua execution engine";
+    homepage = "https://emilua.org/";
+    license = licenses.boost;
+    maintainers = with maintainers; [ manipuladordedados ];
+    platforms = platforms.linux;
+  };
+}