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@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/37590
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Zurab Kvachadze 2024-10-01 02:46:31 +02:00 committed by Sam James
parent c76fbcab4f
commit c9fec840b1
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
5 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1 @@
DIST ngx-lua-module-0.10.27.tar.gz 758952 BLAKE2B 3c0a85fac3452a50eb4009405d7a8f76262d3d36c844139ce3eb829eefef098641b161e0ff27487332fa21269667a838bd2d913cea1c4b183cd9cad87ac76783 SHA512 ff1f7bb593a91402453709d63c95b304ef14d805f5a7f8e6689e95b93522823b80f76baced70664c9f46e9fc8da3941f153b9cf5d1dfbabfb0ee9d9bcc8151b4

View File

@ -0,0 +1,29 @@
From e156f14b262ec3dce32e87dfeb0dabce4821646c Mon Sep 17 00:00:00 2001
From: Zurab Kvachadze <zurabid2016@gmail.com>
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 <zurabid2016@gmail.com>
---
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

View File

@ -0,0 +1,41 @@
From 87a7e04982a2d2963b10965304d822554d1ec848 Mon Sep 17 00:00:00 2001
From: Zurab Kvachadze <zurabid2016@gmail.com>
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 <zurabid2016@gmail.com>
---
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

View File

@ -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>zurabid2016@gmail.com</email>
<name>Zurab Kvachadze</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</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>

View File

@ -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"
}