git: 922fb03ac9e4 - main - www/{nginx,nginx-devel,freenginx}: 3rd-party modules management

From: Jochen Neumeister <joneum_at_FreeBSD.org>
Date: Mon, 19 Oct 2026 18:23:04 UTC
The branch main has been updated by joneum:

URL: https://cgit.FreeBSD.org/ports/commit/?id=922fb03ac9e41cfc4814d79627e105dc201d32e6

commit 922fb03ac9e41cfc4814d79627e105dc201d32e6
Author:     Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2026-10-19 18:15:23 +0000
Commit:     Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-10-19 18:22:51 +0000

    www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
    
    Build the iconv and json_status modules from their own source ports.
    
    Sponsored by:   Netzkommune GmbH
---
 www/freenginx/Makefile                                | 14 +++++++++++---
 www/freenginx/Makefile.extmod                         |  8 ++++----
 www/freenginx/distinfo                                |  4 ----
 .../files/extra-patch-calio-iconv-nginx-module-config | 19 -------------------
 .../extra-patch-ngx_http_json_status_module-config    | 12 ------------
 www/nginx-devel/Makefile                              | 14 +++++++++++---
 www/nginx-devel/Makefile.extmod                       |  8 ++++----
 www/nginx-devel/distinfo                              |  4 ----
 .../files/extra-patch-calio-iconv-nginx-module-config | 19 -------------------
 .../extra-patch-ngx_http_json_status_module-config    | 12 ------------
 www/nginx/Makefile                                    | 16 ++++++++++++----
 www/nginx/Makefile.extmod                             |  8 ++++----
 www/nginx/distinfo                                    |  4 ----
 .../files/extra-patch-calio-iconv-nginx-module-config | 19 -------------------
 .../extra-patch-ngx_http_json_status_module-config    | 12 ------------
 15 files changed, 46 insertions(+), 127 deletions(-)

diff --git a/www/freenginx/Makefile b/www/freenginx/Makefile
index 3219b3e305c7..02205b8617dd 100644
--- a/www/freenginx/Makefile
+++ b/www/freenginx/Makefile
@@ -311,9 +311,6 @@ post-patch-HTTP_AUTH_KRB5-on:
 post-patch-HTTP_TARANTOOL-on:
 	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_nginx_tarantool}/config
 
-post-patch-ICONV-on:
-	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config
-
 pre-configure-SMALL_LIGHT-on:
 	( cd ${WRKSRC_small_light} && ./setup )
 
@@ -362,6 +359,17 @@ pre-configure-HTTP_ACCEPT_LANGUAGE-on:
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-accept-language ${WRKSRC_accept_language}
 	@${CHMOD} -R u+w ${WRKSRC_accept_language}
 
+pre-configure-ICONV-on:
+	@${RM} -rf ${WRKSRC_iconv}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-iconv ${WRKSRC_iconv}
+	@${CHMOD} -R u+w ${WRKSRC_iconv}
+
+pre-configure-HTTP_JSON_STATUS-on:
+	@${RM} -rf ${WRKSRC_json_status}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-json-status \
+		${WRKSRC_json_status}
+	@${CHMOD} -R u+w ${WRKSRC_json_status}
+
 pre-configure-LET-on:
 	@${RM} -rf ${WRKSRC_let}
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-let ${WRKSRC_let}
diff --git a/www/freenginx/Makefile.extmod b/www/freenginx/Makefile.extmod
index 7d42aacb13bc..f0edc7ec197d 100644
--- a/www/freenginx/Makefile.extmod
+++ b/www/freenginx/Makefile.extmod
@@ -135,9 +135,9 @@ HTTP_IP2PROXY_GH_TUPLE=		ip2location:ip2proxy-nginx:02ce447:ip2proxy
 HTTP_IP2PROXY_LIB_DEPENDS=	libIP2Proxy.so:net/ip2proxy
 HTTP_IP2PROXY_VARS=		DSO_EXTMODS+=ip2proxy
 
-HTTP_JSON_STATUS_GH_TUPLE=	nginx-modules:ngx_http_json_status_module:1d2f303:json_status
+HTTP_JSON_STATUS_BUILD_DEPENDS=	nginx-module-json-status>0:www/nginx-module-json-status
+WRKSRC_json_status=		${WRKDIR}/nginx-json-status-module
 HTTP_JSON_STATUS_VARS=		DSO_EXTMODS+=json_status
-HTTP_JSON_STATUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_json_status_module-config
 
 HTTP_MOGILEFS_MASTER_SITES=	http://www.grid.net.ru/nginx/download/:mogilefs
 HTTP_MOGILEFS_DISTFILES=	nginx_mogilefs_module-1.0.4.tar.gz:mogilefs
@@ -211,9 +211,9 @@ HTTP_ZIP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-mod_zip
 
 ICONV_IMPLIES=		DEVEL_KIT
 ICONV_USES=		iconv
-ICONV_GH_TUPLE=		calio:iconv-nginx-module:v0.14:iconv
+ICONV_BUILD_DEPENDS=	nginx-module-iconv>0:www/nginx-module-iconv
+WRKSRC_iconv=		${WRKDIR}/nginx-iconv-module
 ICONV_VARS=		DSO_EXTMODS+=iconv
-ICONV_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-calio-iconv-nginx-module-config
 
 LET_BUILD_DEPENDS=	nginx-module-let>0:www/nginx-module-let
 WRKSRC_let=		${WRKDIR}/nginx-let-module
diff --git a/www/freenginx/distinfo b/www/freenginx/distinfo
index 21ea296687b7..1608c4a66114 100644
--- a/www/freenginx/distinfo
+++ b/www/freenginx/distinfo
@@ -41,8 +41,6 @@ SHA256 (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 86d6d6d6b4437ecc621c
 SIZE (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 5462
 SHA256 (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = edbafe23087f019364f9d1c1c615fdbc5116ec727c49bf442e3e4b39441fc4cc
 SIZE (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = 5177
-SHA256 (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = fdc34e0e712d28f4452ce3858ba05a38cc00703f14502095189c4a1063a36997
-SIZE (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = 6736
 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885
 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343
 SHA256 (slact-nchan-v1.3.6_GH0.tar.gz) = ba0b7cc6b710a20ce1ed2554caf56154035291aaf115e407d7a6bb699fde42df
@@ -67,8 +65,6 @@ SHA256 (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 9113f
 SIZE (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 2710072
 SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85bef69514b7778c1d069783d8fc76cc868da
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
-SHA256 (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = b8b9f355c05c0790226512f6732348a2404d48531688a1fc04ce6768163bf462
-SIZE (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = 13133
 SHA256 (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 20c3679199ba7efe1598f03b2fa0b13591226363c8dd7930d7f02702cd5abada
 SIZE (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 139656
 SHA256 (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 8c2bdbe875e4f5225d0778bfb09a2668f9281d7de6218c7b462a7ba2cee06fe8
diff --git a/www/freenginx/files/extra-patch-calio-iconv-nginx-module-config b/www/freenginx/files/extra-patch-calio-iconv-nginx-module-config
deleted file mode 100644
index fe9b12dc7747..000000000000
--- a/www/freenginx/files/extra-patch-calio-iconv-nginx-module-config
+++ /dev/null
@@ -1,19 +0,0 @@
---- ../iconv-nginx-module-0.14/config.orig	2013-04-16 17:57:17.000000000 -0700
-+++ ../iconv-nginx-module-0.14/config	2013-05-01 17:16:28.134624745 -0700
-@@ -39,12 +39,12 @@
-     fi
- 
-     if [ $ngx_found = no ]; then
--        ngx_feature="libiconv in /usr/local/"
--        ngx_feature_path="/usr/local/include"
-+        ngx_feature="libiconv in %%PREFIX%%/"
-+        ngx_feature_path="%%PREFIX%%/include"
-         if [ $NGX_RPATH = YES ]; then
--            ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -liconv"
-+            ngx_feature_libs="-R%%PREFIX%%/lib -L%%PREFIX%%/lib -liconv"
-         else
--            ngx_feature_libs="-L/usr/local/lib -liconv"
-+            ngx_feature_libs="-L%%PREFIX%%/lib -liconv"
-         fi
-         . auto/feature
-     fi
diff --git a/www/freenginx/files/extra-patch-ngx_http_json_status_module-config b/www/freenginx/files/extra-patch-ngx_http_json_status_module-config
deleted file mode 100644
index 84c4a62ef6cf..000000000000
--- a/www/freenginx/files/extra-patch-ngx_http_json_status_module-config
+++ /dev/null
@@ -1,12 +0,0 @@
---- ../ngx_http_json_status_module-1d2f303/config.orig	2020-04-25 16:16:47.024292000 -0400
-+++ ../ngx_http_json_status_module-1d2f303/config	2020-04-25 16:18:39.461340000 -0400
-@@ -1,4 +1,6 @@
- ngx_addon_name=ngx_http_json_status_module
--HTTP_MODULES="$HTTP_MODULES ngx_http_json_status_module"
--NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_json_status_module.c"
--NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_addon_dir/ngx_http_json_status_module.h"
-+ngx_module_name="$ngx_addon_name"
-+ngx_module_type=HTTP
-+ngx_module_srcs="$ngx_addon_dir/ngx_http_json_status_module.c"
-+ngx_module_deps="$ngx_addon_dir/ngx_http_json_status_module.h"
-+. auto/module
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 021aefb37f49..365b82158d42 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -325,9 +325,6 @@ post-patch-HTTP_AUTH_KRB5-on:
 post-patch-HTTP_TARANTOOL-on:
 	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_nginx_tarantool}/config
 
-post-patch-ICONV-on:
-	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config
-
 pre-configure-SMALL_LIGHT-on:
 	( cd ${WRKSRC_small_light} && ./setup )
 
@@ -376,6 +373,17 @@ pre-configure-HTTP_ACCEPT_LANGUAGE-on:
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-accept-language ${WRKSRC_accept_language}
 	@${CHMOD} -R u+w ${WRKSRC_accept_language}
 
+pre-configure-ICONV-on:
+	@${RM} -rf ${WRKSRC_iconv}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-iconv ${WRKSRC_iconv}
+	@${CHMOD} -R u+w ${WRKSRC_iconv}
+
+pre-configure-HTTP_JSON_STATUS-on:
+	@${RM} -rf ${WRKSRC_json_status}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-json-status \
+		${WRKSRC_json_status}
+	@${CHMOD} -R u+w ${WRKSRC_json_status}
+
 pre-configure-LET-on:
 	@${RM} -rf ${WRKSRC_let}
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-let ${WRKSRC_let}
diff --git a/www/nginx-devel/Makefile.extmod b/www/nginx-devel/Makefile.extmod
index 2d7310d82be4..d208f80ebd65 100644
--- a/www/nginx-devel/Makefile.extmod
+++ b/www/nginx-devel/Makefile.extmod
@@ -133,9 +133,9 @@ HTTP_IP2PROXY_GH_TUPLE=		ip2location:ip2proxy-nginx:f3e7e7d:ip2proxy
 HTTP_IP2PROXY_LIB_DEPENDS=	libIP2Proxy.so:net/ip2proxy
 HTTP_IP2PROXY_VARS=		DSO_EXTMODS+=ip2proxy
 
-HTTP_JSON_STATUS_GH_TUPLE=	nginx-modules:ngx_http_json_status_module:c77dff4:json_status
+HTTP_JSON_STATUS_BUILD_DEPENDS=	nginx-module-json-status>0:www/nginx-module-json-status
+WRKSRC_json_status=		${WRKDIR}/nginx-json-status-module
 HTTP_JSON_STATUS_VARS=		DSO_EXTMODS+=json_status
-HTTP_JSON_STATUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_json_status_module-config
 
 HTTP_MOGILEFS_MASTER_SITES=	http://www.grid.net.ru/nginx/download/:mogilefs
 HTTP_MOGILEFS_DISTFILES=	nginx_mogilefs_module-1.0.4.tar.gz:mogilefs
@@ -205,9 +205,9 @@ HTTP_ZIP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-mod_zip
 
 ICONV_IMPLIES=		DEVEL_KIT
 ICONV_USES=		iconv
-ICONV_GH_TUPLE=		calio:iconv-nginx-module:v0.14:iconv
+ICONV_BUILD_DEPENDS=	nginx-module-iconv>0:www/nginx-module-iconv
+WRKSRC_iconv=		${WRKDIR}/nginx-iconv-module
 ICONV_VARS=		DSO_EXTMODS+=iconv
-ICONV_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-calio-iconv-nginx-module-config
 
 LET_BUILD_DEPENDS=	nginx-module-let>0:www/nginx-module-let
 WRKSRC_let=		${WRKDIR}/nginx-let-module
diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo
index 1466e98b5f60..e27b22e0737c 100644
--- a/www/nginx-devel/distinfo
+++ b/www/nginx-devel/distinfo
@@ -39,8 +39,6 @@ SHA256 (ip2location-ip2location-nginx-5f2c59a_GH0.tar.gz) = 3eb29b516d80afcc5267
 SIZE (ip2location-ip2location-nginx-5f2c59a_GH0.tar.gz) = 5506
 SHA256 (ip2location-ip2proxy-nginx-f3e7e7d_GH0.tar.gz) = 90dc4a10dd8fc4af3ffdd2cf451368eca1d3b90261ec1944ad629b2302932638
 SIZE (ip2location-ip2proxy-nginx-f3e7e7d_GH0.tar.gz) = 5253
-SHA256 (nginx-modules-ngx_http_json_status_module-c77dff4_GH0.tar.gz) = a071c50834142dc094a2915a5ac7bd80765d76bbe736fe291e40f593c8278f16
-SIZE (nginx-modules-ngx_http_json_status_module-c77dff4_GH0.tar.gz) = 6753
 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885
 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343
 SHA256 (slact-nchan-v1.3.7_GH0.tar.gz) = 6e82c673cedc7d33ee48ea1c198964fdcf6853bf851de797002199a496f08263
@@ -67,8 +65,6 @@ SHA256 (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 9113f
 SIZE (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 2710072
 SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85bef69514b7778c1d069783d8fc76cc868da
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
-SHA256 (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = b8b9f355c05c0790226512f6732348a2404d48531688a1fc04ce6768163bf462
-SIZE (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = 13133
 SHA256 (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 20c3679199ba7efe1598f03b2fa0b13591226363c8dd7930d7f02702cd5abada
 SIZE (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 139656
 SHA256 (openresty-memc-nginx-module-v0.20_GH0.tar.gz) = a42dd56dd6e2144755a127bcd2a6cc1a488258dc5cdb751d6a3e5dd5b6989239
diff --git a/www/nginx-devel/files/extra-patch-calio-iconv-nginx-module-config b/www/nginx-devel/files/extra-patch-calio-iconv-nginx-module-config
deleted file mode 100644
index fe9b12dc7747..000000000000
--- a/www/nginx-devel/files/extra-patch-calio-iconv-nginx-module-config
+++ /dev/null
@@ -1,19 +0,0 @@
---- ../iconv-nginx-module-0.14/config.orig	2013-04-16 17:57:17.000000000 -0700
-+++ ../iconv-nginx-module-0.14/config	2013-05-01 17:16:28.134624745 -0700
-@@ -39,12 +39,12 @@
-     fi
- 
-     if [ $ngx_found = no ]; then
--        ngx_feature="libiconv in /usr/local/"
--        ngx_feature_path="/usr/local/include"
-+        ngx_feature="libiconv in %%PREFIX%%/"
-+        ngx_feature_path="%%PREFIX%%/include"
-         if [ $NGX_RPATH = YES ]; then
--            ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -liconv"
-+            ngx_feature_libs="-R%%PREFIX%%/lib -L%%PREFIX%%/lib -liconv"
-         else
--            ngx_feature_libs="-L/usr/local/lib -liconv"
-+            ngx_feature_libs="-L%%PREFIX%%/lib -liconv"
-         fi
-         . auto/feature
-     fi
diff --git a/www/nginx-devel/files/extra-patch-ngx_http_json_status_module-config b/www/nginx-devel/files/extra-patch-ngx_http_json_status_module-config
deleted file mode 100644
index d80c30bb3333..000000000000
--- a/www/nginx-devel/files/extra-patch-ngx_http_json_status_module-config
+++ /dev/null
@@ -1,12 +0,0 @@
---- ../ngx_http_json_status_module-c77dff4/config.orig	2020-04-25 16:16:47.024292000 -0400
-+++ ../ngx_http_json_status_module-c77dff4/config	2020-04-25 16:18:39.461340000 -0400
-@@ -1,4 +1,6 @@
- ngx_addon_name=ngx_http_json_status_module
--HTTP_MODULES="$HTTP_MODULES ngx_http_json_status_module"
--NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_json_status_module.c"
--NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_addon_dir/ngx_http_json_status_module.h"
-+ngx_module_name="$ngx_addon_name"
-+ngx_module_type=HTTP
-+ngx_module_srcs="$ngx_addon_dir/ngx_http_json_status_module.c"
-+ngx_module_deps="$ngx_addon_dir/ngx_http_json_status_module.h"
-+. auto/module
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index 73173a207109..4cfeee586d08 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	nginx
 PORTVERSION=	${NGINX_VERSION}
 .include "version.mk"
-PORTREVISION=	2
+PORTREVISION=	3
 PORTEPOCH=	3
 CATEGORIES=	www
 MASTER_SITES=	https://nginx.org/download/ \
@@ -314,9 +314,6 @@ post-patch-HTTP_AUTH_KRB5-on:
 post-patch-HTTP_TARANTOOL-on:
 	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_nginx_tarantool}/config
 
-post-patch-ICONV-on:
-	@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config
-
 pre-configure-SMALL_LIGHT-on:
 	( cd ${WRKSRC_small_light} && ./setup )
 
@@ -365,6 +362,17 @@ pre-configure-HTTP_ACCEPT_LANGUAGE-on:
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-accept-language ${WRKSRC_accept_language}
 	@${CHMOD} -R u+w ${WRKSRC_accept_language}
 
+pre-configure-ICONV-on:
+	@${RM} -rf ${WRKSRC_iconv}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-iconv ${WRKSRC_iconv}
+	@${CHMOD} -R u+w ${WRKSRC_iconv}
+
+pre-configure-HTTP_JSON_STATUS-on:
+	@${RM} -rf ${WRKSRC_json_status}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-json-status \
+		${WRKSRC_json_status}
+	@${CHMOD} -R u+w ${WRKSRC_json_status}
+
 pre-configure-LET-on:
 	@${RM} -rf ${WRKSRC_let}
 	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-let ${WRKSRC_let}
diff --git a/www/nginx/Makefile.extmod b/www/nginx/Makefile.extmod
index 1bb2ef4a8acb..fccfc88e62e8 100644
--- a/www/nginx/Makefile.extmod
+++ b/www/nginx/Makefile.extmod
@@ -128,9 +128,9 @@ HTTP_IP2PROXY_GH_TUPLE=		ip2location:ip2proxy-nginx:02ce447:ip2proxy
 HTTP_IP2PROXY_LIB_DEPENDS=	libIP2Proxy.so:net/ip2proxy
 HTTP_IP2PROXY_VARS=		DSO_EXTMODS+=ip2proxy
 
-HTTP_JSON_STATUS_GH_TUPLE=	nginx-modules:ngx_http_json_status_module:1d2f303:json_status
+HTTP_JSON_STATUS_BUILD_DEPENDS=	nginx-module-json-status>0:www/nginx-module-json-status
+WRKSRC_json_status=		${WRKDIR}/nginx-json-status-module
 HTTP_JSON_STATUS_VARS=		DSO_EXTMODS+=json_status
-HTTP_JSON_STATUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_json_status_module-config
 
 HTTP_MOGILEFS_MASTER_SITES=	http://www.grid.net.ru/nginx/download/:mogilefs
 HTTP_MOGILEFS_DISTFILES=	nginx_mogilefs_module-1.0.4.tar.gz:mogilefs
@@ -203,9 +203,9 @@ HTTP_ZIP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-mod_zip
 
 ICONV_IMPLIES=		DEVEL_KIT
 ICONV_USES=		iconv
-ICONV_GH_TUPLE=		calio:iconv-nginx-module:v0.14:iconv
+ICONV_BUILD_DEPENDS=	nginx-module-iconv>0:www/nginx-module-iconv
+WRKSRC_iconv=		${WRKDIR}/nginx-iconv-module
 ICONV_VARS=		DSO_EXTMODS+=iconv
-ICONV_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-calio-iconv-nginx-module-config
 
 LET_BUILD_DEPENDS=	nginx-module-let>0:www/nginx-module-let
 WRKSRC_let=		${WRKDIR}/nginx-let-module
diff --git a/www/nginx/distinfo b/www/nginx/distinfo
index 330ac5999bca..32f7c090cb8f 100644
--- a/www/nginx/distinfo
+++ b/www/nginx/distinfo
@@ -39,8 +39,6 @@ SHA256 (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 86d6d6d6b4437ecc621c
 SIZE (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 5462
 SHA256 (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = edbafe23087f019364f9d1c1c615fdbc5116ec727c49bf442e3e4b39441fc4cc
 SIZE (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = 5177
-SHA256 (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = fdc34e0e712d28f4452ce3858ba05a38cc00703f14502095189c4a1063a36997
-SIZE (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = 6736
 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885
 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343
 SHA256 (slact-nchan-v1.3.6_GH0.tar.gz) = ba0b7cc6b710a20ce1ed2554caf56154035291aaf115e407d7a6bb699fde42df
@@ -65,8 +63,6 @@ SHA256 (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 9113f
 SIZE (wandenberg-nginx-video-thumbextractor-module-e81f850_GH0.tar.gz) = 2710072
 SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85bef69514b7778c1d069783d8fc76cc868da
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
-SHA256 (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = b8b9f355c05c0790226512f6732348a2404d48531688a1fc04ce6768163bf462
-SIZE (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = 13133
 SHA256 (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 20c3679199ba7efe1598f03b2fa0b13591226363c8dd7930d7f02702cd5abada
 SIZE (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 139656
 SHA256 (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 8c2bdbe875e4f5225d0778bfb09a2668f9281d7de6218c7b462a7ba2cee06fe8
diff --git a/www/nginx/files/extra-patch-calio-iconv-nginx-module-config b/www/nginx/files/extra-patch-calio-iconv-nginx-module-config
deleted file mode 100644
index fe9b12dc7747..000000000000
--- a/www/nginx/files/extra-patch-calio-iconv-nginx-module-config
+++ /dev/null
@@ -1,19 +0,0 @@
---- ../iconv-nginx-module-0.14/config.orig	2013-04-16 17:57:17.000000000 -0700
-+++ ../iconv-nginx-module-0.14/config	2013-05-01 17:16:28.134624745 -0700
-@@ -39,12 +39,12 @@
-     fi
- 
-     if [ $ngx_found = no ]; then
--        ngx_feature="libiconv in /usr/local/"
--        ngx_feature_path="/usr/local/include"
-+        ngx_feature="libiconv in %%PREFIX%%/"
-+        ngx_feature_path="%%PREFIX%%/include"
-         if [ $NGX_RPATH = YES ]; then
--            ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -liconv"
-+            ngx_feature_libs="-R%%PREFIX%%/lib -L%%PREFIX%%/lib -liconv"
-         else
--            ngx_feature_libs="-L/usr/local/lib -liconv"
-+            ngx_feature_libs="-L%%PREFIX%%/lib -liconv"
-         fi
-         . auto/feature
-     fi
diff --git a/www/nginx/files/extra-patch-ngx_http_json_status_module-config b/www/nginx/files/extra-patch-ngx_http_json_status_module-config
deleted file mode 100644
index 84c4a62ef6cf..000000000000
--- a/www/nginx/files/extra-patch-ngx_http_json_status_module-config
+++ /dev/null
@@ -1,12 +0,0 @@
---- ../ngx_http_json_status_module-1d2f303/config.orig	2020-04-25 16:16:47.024292000 -0400
-+++ ../ngx_http_json_status_module-1d2f303/config	2020-04-25 16:18:39.461340000 -0400
-@@ -1,4 +1,6 @@
- ngx_addon_name=ngx_http_json_status_module
--HTTP_MODULES="$HTTP_MODULES ngx_http_json_status_module"
--NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_json_status_module.c"
--NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_addon_dir/ngx_http_json_status_module.h"
-+ngx_module_name="$ngx_addon_name"
-+ngx_module_type=HTTP
-+ngx_module_srcs="$ngx_addon_dir/ngx_http_json_status_module.c"
-+ngx_module_deps="$ngx_addon_dir/ngx_http_json_status_module.h"
-+. auto/module