git: 9020cc36d15a - main - www/freenginx-devel: enable third-party http_upload module

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Mon, 03 Nov 2025 01:40:18 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9020cc36d15a401d44f8b263fbf1de7270e56ff9

commit 9020cc36d15a401d44f8b263fbf1de7270e56ff9
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2025-11-03 01:39:27 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2025-11-03 01:39:27 +0000

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

diff --git a/www/freenginx-devel/Makefile b/www/freenginx-devel/Makefile
index 4d361d15eac4..ddc5e1a8a4ec 100644
--- a/www/freenginx-devel/Makefile
+++ b/www/freenginx-devel/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	freenginx
 PORTVERSION=	${NGINX_VERSION}
 .include "version.mk"
-PORTREVISION=	11
+PORTREVISION=	12
 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 47f204238655..82e9f638d348 100644
--- a/www/freenginx-devel/Makefile.extmod
+++ b/www/freenginx-devel/Makefile.extmod
@@ -158,6 +158,7 @@ HTTP_TARANTOOL_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_tarantool-config
 
 HTTP_UPLOAD_GH_TUPLE=		fdintino:nginx-upload-module:96e6460:upload
 HTTP_UPLOAD_VARS=		DSO_EXTMODS+=upload
+HTTP_UPLOAD_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_upload_module.c
 
 HTTP_UPLOAD_PROGRESS_GH_TUPLE=		masterzen:nginx-upload-progress-module:v0.9.3:uploadprogress
 HTTP_UPLOAD_PROGRESS_VARS=		DSO_EXTMODS+=uploadprogress
diff --git a/www/freenginx-devel/Makefile.ignore b/www/freenginx-devel/Makefile.ignore
index abb6eea2e14a..e28b60dd751c 100644
--- a/www/freenginx-devel/Makefile.ignore
+++ b/www/freenginx-devel/Makefile.ignore
@@ -1,7 +1,3 @@
-.if ${PORT_OPTIONS:MHTTP_UPLOAD}
-IGNORE=		upload 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_upload_module.c b/www/freenginx-devel/files/extra-patch-ngx_http_upload_module.c
new file mode 100644
index 000000000000..36649990a8f0
--- /dev/null
+++ b/www/freenginx-devel/files/extra-patch-ngx_http_upload_module.c
@@ -0,0 +1,26 @@
+--- ../nginx-upload-module-96e6460/ngx_http_upload_module.c.orig	2025-11-02 20:25:39.277074000 -0500
++++ ../nginx-upload-module-96e6460/ngx_http_upload_module.c	2025-11-02 20:31:22.912698000 -0500
+@@ -989,7 +989,11 @@
+         if (u->limit_rate) {
+             remaining = ((ssize_t) r->headers_in.content_length_n) - u->received;
+             next_buf_size = (buf_read_size > remaining) ? remaining : buf_read_size;
++#if defined freenginx && nginx_version >= 1029000
++            limit = u->limit_rate * (ngx_time() - ((ngx_current_msec - r->start_time) / 1000) + 1) - (u->received + next_buf_size);
++#else
+             limit = u->limit_rate * (ngx_time() - r->start_sec + 1) - (u->received + next_buf_size);
++#endif
+             if (limit < 0) {
+                 rev->delayed = 1;
+                 ngx_add_timer(rev, (ngx_msec_t) ((limit * -1000 / u->limit_rate) + 1));
+@@ -3370,7 +3373,11 @@
+             }
+ 
+             if (u->limit_rate) {
++#if defined freenginx && nginx_version >= 1029000
++                limit = u->limit_rate * (ngx_time() - ((ngx_current_msec - r->start_time) / 1000) + 1) - u->received;
++#else
+                 limit = u->limit_rate * (ngx_time() - r->start_sec + 1) - u->received;
++#endif
+ 
+                 if (limit < 0) {
+                     c->read->delayed = 1;