From c9fec840b1850a699d9b1187568b58d1f83dfd79 Mon Sep 17 00:00:00 2001 From: Zurab Kvachadze Date: Tue, 1 Oct 2024 02:46:31 +0200 Subject: [PATCH] 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 Part-of: https://github.com/gentoo/gentoo/pull/37590 Signed-off-by: Sam James --- www-nginx/ngx-lua-module/Manifest | 1 + ...lua-module-0.10.27-always-define-NDK.patch | 29 +++++++++ ...0.10.27-do-not-log-non-openresty-lua.patch | 41 +++++++++++++ www-nginx/ngx-lua-module/metadata.xml | 21 +++++++ .../ngx-lua-module-0.10.27.ebuild | 59 +++++++++++++++++++ 5 files changed, 151 insertions(+) create mode 100644 www-nginx/ngx-lua-module/Manifest create mode 100644 www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-always-define-NDK.patch create mode 100644 www-nginx/ngx-lua-module/files/ngx-lua-module-0.10.27-do-not-log-non-openresty-lua.patch create mode 100644 www-nginx/ngx-lua-module/metadata.xml create mode 100644 www-nginx/ngx-lua-module/ngx-lua-module-0.10.27.ebuild 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 +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 +--- + 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 + #include + ++#define NDK 1 ++ + + #if defined(NDK) && NDK + #include +-- +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 +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 +--- + 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 @@ + + + + + zurabid2016@gmail.com + Zurab Kvachadze + + + proxy-maint@gentoo.org + Proxy Maintainers + + + 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. + + + https://github.com/openresty/lua-nginx-module/issues + openresty/lua-nginx-module + + 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" +}