git: 9d4cba8b7c5a - main - www/freenginx-devel: enable third-party lua module

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Sun, 02 Nov 2025 04:19:02 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9d4cba8b7c5a921ea2fffd5ec13816d4d337f564

commit 9d4cba8b7c5a921ea2fffd5ec13816d4d337f564
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2025-11-02 04:18:21 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2025-11-02 04:18:21 +0000

    www/freenginx-devel: enable third-party lua module
    
    Bump PORTREVISION.
    
    Sponsored by:   tipi.work
---
 www/freenginx-devel/Makefile                       |  2 +-
 www/freenginx-devel/Makefile.extmod                |  2 ++
 www/freenginx-devel/Makefile.ignore                |  4 ----
 .../files/extra-patch-ngx_http_lua_subrequest.c    | 26 ++++++++++++++++++++++
 .../files/extra-patch-ngx_http_lua_time.c          | 24 ++++++++++++++++++++
 5 files changed, 53 insertions(+), 5 deletions(-)

diff --git a/www/freenginx-devel/Makefile b/www/freenginx-devel/Makefile
index 7829a73dd5e3..79a6934eac6e 100644
--- a/www/freenginx-devel/Makefile
+++ b/www/freenginx-devel/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	freenginx
 PORTVERSION=	${NGINX_VERSION}
 .include "version.mk"
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	www
 MASTER_SITES=	https://freenginx.org/download/ \
 		LOCAL/osa
diff --git a/www/freenginx-devel/Makefile.extmod b/www/freenginx-devel/Makefile.extmod
index b2c405f920b5..6f5b2cc0043d 100644
--- a/www/freenginx-devel/Makefile.extmod
+++ b/www/freenginx-devel/Makefile.extmod
@@ -200,6 +200,8 @@ LUA_CONFIGURE_ENV=	LUAJIT_INC=${LOCALBASE}/include/luajit-2.1 \
 			LUAJIT_LIB=${LOCALBASE}/lib
 LUA_GH_TUPLE=		openresty:lua-nginx-module:v0.10.28:lua
 LUA_VARS=		DSO_EXTMODS+=lua
+LUA_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_lua_time.c \
+			${PATCHDIR}/extra-patch-ngx_http_lua_subrequest.c
 
 LUASTREAM_IMPLIES=	DEVEL_KIT
 LUASTREAM_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit-openresty
diff --git a/www/freenginx-devel/Makefile.ignore b/www/freenginx-devel/Makefile.ignore
index 5197fc544c2d..1e0abd264dfd 100644
--- a/www/freenginx-devel/Makefile.ignore
+++ b/www/freenginx-devel/Makefile.ignore
@@ -2,10 +2,6 @@
 IGNORE=		upload module: patching is required
 .endif
 
-.if ${PORT_OPTIONS:MLUA}
-IGNORE=		lua module: patching is required
-.endif
-
 .if ${PORT_OPTIONS:MLUASTREAM}
 IGNORE=		lua stream module: patching is required
 .endif
diff --git a/www/freenginx-devel/files/extra-patch-ngx_http_lua_subrequest.c b/www/freenginx-devel/files/extra-patch-ngx_http_lua_subrequest.c
new file mode 100644
index 000000000000..a72bcb32b5c8
--- /dev/null
+++ b/www/freenginx-devel/files/extra-patch-ngx_http_lua_subrequest.c
@@ -0,0 +1,26 @@
+--- ../lua-nginx-module-0.10.28/src/ngx_http_lua_subrequest.c.orig	2025-11-01 23:46:33.237622000 -0400
++++ ../lua-nginx-module-0.10.28/src/ngx_http_lua_subrequest.c	2025-11-01 23:52:42.602198000 -0400
+@@ -1373,7 +1373,9 @@
+     ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **psr,
+     ngx_http_post_subrequest_t *ps, ngx_uint_t flags)
+ {
++#if !defined freenginx
+     ngx_time_t                    *tp;
++#endif
+     ngx_connection_t              *c;
+     ngx_http_request_t            *sr;
+     ngx_http_core_srv_conf_t      *cscf;
+@@ -1501,9 +1503,13 @@
+     sr->subrequests = r->subrequests - 1;
+ #endif
+ 
++#if defined freenginx
++    sr->start_time = ngx_current_msec;
++#else
+     tp = ngx_timeofday();
+     sr->start_sec = tp->sec;
+     sr->start_msec = tp->msec;
++#endif
+ 
+     r->main->count++;
+ 
diff --git a/www/freenginx-devel/files/extra-patch-ngx_http_lua_time.c b/www/freenginx-devel/files/extra-patch-ngx_http_lua_time.c
new file mode 100644
index 000000000000..8b94b95de54e
--- /dev/null
+++ b/www/freenginx-devel/files/extra-patch-ngx_http_lua_time.c
@@ -0,0 +1,24 @@
+--- ../lua-nginx-module-0.10.28/src/ngx_http_lua_time.c.orig	2025-01-17 00:24:35.000000000 -0500
++++ ../lua-nginx-module-0.10.28/src/ngx_http_lua_time.c	2025-11-02 00:11:45.551096000 -0400
+@@ -28,7 +28,21 @@
+ double
+ ngx_http_lua_ffi_req_start_time(ngx_http_request_t *r)
+ {
++#if defined freenginx
++    ngx_time_t              *tp;
++
++    tp = ngx_timeofday();
++    tp->sec -= (ngx_current_msec - r->start_time) / 1000;
++    tp->msec -= (ngx_current_msec - r->start_time) % 1000;
++    if (tp->msec > NGX_MAX_INT_T_VALUE) {
++        tp->msec += 1000;
++        tp->sec -= 1;
++    }
++
++    return tp->sec + tp->msec / 1000.0;
++#else
+     return r->start_sec + r->start_msec / 1000.0;
++#endif
+ }
+ 
+