commit:     c9fec840b1850a699d9b1187568b58d1f83dfd79
Author:     Zurab Kvachadze <zurabid2016 <AT> gmail <DOT> com>
AuthorDate: Tue Oct  1 00:46:31 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul  5 07:27:01 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9fec840

www-nginx/ngx-lua-module: new package, add 0.10.27

This package requires two environmental variables being set in order to
use Lua: LUAJIT_LIB and LUAJIT_INC. The former is set to /usr/${libdir},
for the latter one, the ebuild uses pkg-config directly to get the
include directory.

Signed-off-by: Zurab Kvachadze <zurabid2016 <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/37590
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-nginx/ngx-lua-module/Manifest                  |  1 +
 .../ngx-lua-module-0.10.27-always-define-NDK.patch | 29 +++++++++++
 ...dule-0.10.27-do-not-log-non-openresty-lua.patch | 41 +++++++++++++++
 www-nginx/ngx-lua-module/metadata.xml              | 21 ++++++++
 .../ngx-lua-module/ngx-lua-module-0.10.27.ebuild   | 59 ++++++++++++++++++++++
 5 files changed, 151 insertions(+)

diff --git a/www-nginx/ngx-lua-module/Manifest 
b/www-nginx/ngx-lua-module/Manifest
new file mode 100644
index 000000000000..245ccaf878bd
--- /dev/null
+++ b/www-nginx/ngx-lua-module/Manifest
@@ -0,0 +1 @@
+DIST ngx-lua-module-0.10.27.tar.gz 758952 BLAKE2B 
3c0a85fac3452a50eb4009405d7a8f76262d3d36c844139ce3eb829eefef098641b161e0ff27487332fa21269667a838bd2d913cea1c4b183cd9cad87ac76783
 SHA512 
ff1f7bb593a91402453709d63c95b304ef14d805f5a7f8e6689e95b93522823b80f76baced70664c9f46e9fc8da3941f153b9cf5d1dfbabfb0ee9d9bcc8151b4

diff --git 
a/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-always-define-NDK.patch 
b/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-always-define-NDK.patch
new file mode 100644
index 000000000000..309670bcb3d5
--- /dev/null
+++ 
b/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-always-define-NDK.patch
@@ -0,0 +1,29 @@
+From e156f14b262ec3dce32e87dfeb0dabce4821646c Mon Sep 17 00:00:00 2001
+From: Zurab Kvachadze <[email protected]>
+Date: Sun, 16 Feb 2025 22:51:03 +0100
+Subject: [PATCH] src/ngx_http_lua_common.h: always #define NDK
+
+In Gentoo, NDK is a mandatory dependency. Make life easier for everybody
+and just define the NDK macro.
+
+Signed-off-by: Zurab Kvachadze <[email protected]>
+---
+ src/ngx_http_lua_common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/ngx_http_lua_common.h b/src/ngx_http_lua_common.h
+index cc2d36a3..42a7df6b 100644
+--- a/src/ngx_http_lua_common.h
++++ b/src/ngx_http_lua_common.h
+@@ -23,6 +23,8 @@
+ #include <lualib.h>
+ #include <lauxlib.h>
+ 
++#define NDK 1
++
+ 
+ #if defined(NDK) && NDK
+ #include <ndk.h>
+-- 
+2.45.3
+

diff --git 
a/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-do-not-log-non-openresty-lua.patch
 
b/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-do-not-log-non-openresty-lua.patch
new file mode 100644
index 000000000000..98c5967da149
--- /dev/null
+++ 
b/www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-do-not-log-non-openresty-lua.patch
@@ -0,0 +1,41 @@
+From 87a7e04982a2d2963b10965304d822554d1ec848 Mon Sep 17 00:00:00 2001
+From: Zurab Kvachadze <[email protected]>
+Date: Tue, 11 Feb 2025 10:57:14 +0100
+Subject: [PATCH] Do not log error if non-OpenResty Lua is used
+
+Users are perfectly capable of reading the recommendation on README and
+deciding themselves which distribution of Lua to use. There is no need
+to scream at the users each time NGINX is started.
+
+Signed-off-by: Zurab Kvachadze <[email protected]>
+---
+ src/ngx_http_lua_module.c | 13 +------------
+ 1 file changed, 1 insertion(+), 12 deletions(-)
+
+diff --git a/src/ngx_http_lua_module.c b/src/ngx_http_lua_module.c
+index 63367f46..4ddf7b21 100644
+--- a/src/ngx_http_lua_module.c
++++ b/src/ngx_http_lua_module.c
+@@ -895,18 +895,7 @@ ngx_http_lua_init(ngx_conf_t *cf)
+     if (lmcf->lua == NULL) {
+         dd("initializing lua vm");
+ 
+-#ifndef OPENRESTY_LUAJIT
+-        if (ngx_process != NGX_PROCESS_SIGNALLER && !ngx_test_config) {
+-            ngx_log_error(NGX_LOG_ALERT, cf->log, 0,
+-                          "detected a LuaJIT version which is not OpenResty's"
+-                          "; many optimizations will be disabled and "
+-                          "performance will be compromised (see "
+-                          "https://github.com/openresty/luajit2 for "
+-                          "OpenResty's LuaJIT or, even better, consider using 
"
+-                          "the OpenResty releases from https://openresty.org/";
+-                          "en/download.html)");
+-        }
+-#else
++#ifdef OPENRESTY_LUAJIT
+ #   if !defined(HAVE_LUA_RESETTHREAD)
+         ngx_log_error(NGX_LOG_ALERT, cf->log, 0,
+                       "detected an old version of OpenResty's LuaJIT missing "
+-- 
+2.45.3
+

diff --git a/www-nginx/ngx-lua-module/metadata.xml 
b/www-nginx/ngx-lua-module/metadata.xml
new file mode 100644
index 000000000000..42a518e970f5
--- /dev/null
+++ b/www-nginx/ngx-lua-module/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person" proxied="yes">
+               <email>[email protected]</email>
+               <name>Zurab Kvachadze</name>
+       </maintainer>
+       <maintainer type="project" proxied="proxy">
+               <email>[email protected]</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
+       <longdescription>
+               The ngx-lua module embeds LuaJIT 2.0/2.1 into NGINX. By 
leveraging NGINX's subrequests, this
+               module allows the integration of the powerful Lua threads 
(known as Lua "coroutines") into
+               the NGINX event model.
+       </longdescription>
+       <upstream>
+               
<bugs-to>https://github.com/openresty/lua-nginx-module/issues</bugs-to>
+               <remote-id type="github">openresty/lua-nginx-module</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/www-nginx/ngx-lua-module/ngx-lua-module-0.10.27.ebuild 
b/www-nginx/ngx-lua-module/ngx-lua-module-0.10.27.ebuild
new file mode 100644
index 000000000000..8be9b7197480
--- /dev/null
+++ b/www-nginx/ngx-lua-module/ngx-lua-module-0.10.27.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Upstream supports luajit only.
+LUA_COMPAT=( luajit )
+
+MY_PN="lua-nginx-module"
+NGINX_MOD_S="${WORKDIR}/${MY_PN}-${PV}"
+
+NGINX_MOD_LINK_MODULES=( www-nginx/ngx_devel_kit )
+
+inherit lua-single nginx-module
+
+DESCRIPTION="A module embedding the power of Lua into NGINX HTTP Servers"
+HOMEPAGE="https://github.com/openresty/lua-nginx-module";
+SRC_URI="
+       
https://github.com/openresty/lua-nginx-module/archive/refs/tags/v${PV}.tar.gz 
-> ${P}.tar.gz
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+# Tests require too much manual patching to get working.
+RESTRICT="test"
+
+BDEPEND="virtual/pkgconfig"
+DEPEND="${LUA_DEPS}"
+RDEPEND="
+       ${DEPEND}
+       dev-lua/lua-resty-core[${LUA_SINGLE_USEDEP}]
+       dev-lua/lua-resty-lrucache[${LUA_SINGLE_USEDEP}]
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-0.10.27-always-define-NDK.patch"
+       "${FILESDIR}/${PN}-0.10.27-do-not-log-non-openresty-lua.patch"
+)
+
+src_configure() {
+       # The config script does some manual auto-detection, which only looks 
for
+       # luajit-2.0, so we set the necessary variables manually.
+       export LUAJIT_LIB="${ESYSROOT}/usr/$(get_libdir)"
+       export LUAJIT_INC="$(lua_get_include_dir)"
+
+       nginx-module_src_configure
+}
+
+src_install() {
+       nginx-module_src_install
+
+       # Install headers from 'src/api' into '/usr/include/nginx/modules'.
+       insinto /usr/include/nginx/modules
+       find "${NGINX_MOD_S}/src/api" -type f -name '*.h' -print0 | xargs -0 
doins
+       assert "find failed"
+}

Reply via email to