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

From: Jochen Neumeister <joneum_at_FreeBSD.org>
Date: Tue, 20 Oct 2026 17:43:51 UTC
The branch main has been updated by joneum:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0f43b58e9a755b66a34c5e855a205d19e81409ba

commit 0f43b58e9a755b66a34c5e855a205d19e81409ba
Author:     Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2026-10-20 17:42:41 +0000
Commit:     Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-10-20 17:43:29 +0000

    www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
    
    Build the memc, encrypted_session, fancyindex, auth_pam and geoip2 modules
    from their own source ports.
    
    Sponsored by:   Netzkommune GmbH
---
 www/freenginx/Makefile          | 30 ++++++++++++++++++++++++++++++
 www/freenginx/Makefile.extmod   | 15 ++++++++++-----
 www/freenginx/distinfo          | 10 ----------
 www/nginx-devel/Makefile        | 30 ++++++++++++++++++++++++++++++
 www/nginx-devel/Makefile.extmod | 15 ++++++++++-----
 www/nginx-devel/distinfo        | 10 ----------
 www/nginx/Makefile              | 32 +++++++++++++++++++++++++++++++-
 www/nginx/Makefile.extmod       | 15 ++++++++++-----
 www/nginx/distinfo              | 10 ----------
 9 files changed, 121 insertions(+), 46 deletions(-)

diff --git a/www/freenginx/Makefile b/www/freenginx/Makefile
index 02205b8617dd..2e7be921637d 100644
--- a/www/freenginx/Makefile
+++ b/www/freenginx/Makefile
@@ -370,6 +370,36 @@ pre-configure-HTTP_JSON_STATUS-on:
 		${WRKSRC_json_status}
 	@${CHMOD} -R u+w ${WRKSRC_json_status}
 
+pre-configure-MEMC-on:
+	@${RM} -rf ${WRKSRC_memc}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-memc \
+		${WRKSRC_memc}
+	@${CHMOD} -R u+w ${WRKSRC_memc}
+
+pre-configure-ENCRYPTSESSION-on:
+	@${RM} -rf ${WRKSRC_encryptsession}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-encrypted-session \
+		${WRKSRC_encryptsession}
+	@${CHMOD} -R u+w ${WRKSRC_encryptsession}
+
+pre-configure-HTTP_FANCYINDEX-on:
+	@${RM} -rf ${WRKSRC_fancyindex}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-fancyindex \
+		${WRKSRC_fancyindex}
+	@${CHMOD} -R u+w ${WRKSRC_fancyindex}
+
+pre-configure-HTTP_AUTH_PAM-on:
+	@${RM} -rf ${WRKSRC_auth_pam}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-auth-pam \
+		${WRKSRC_auth_pam}
+	@${CHMOD} -R u+w ${WRKSRC_auth_pam}
+
+pre-configure-HTTP_GEOIP2-on:
+	@${RM} -rf ${WRKSRC_geoip2}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-geoip2 \
+		${WRKSRC_geoip2}
+	@${CHMOD} -R u+w ${WRKSRC_geoip2}
+
 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 f0edc7ec197d..8bd840d0dcef 100644
--- a/www/freenginx/Makefile.extmod
+++ b/www/freenginx/Makefile.extmod
@@ -63,7 +63,8 @@ WRKSRC_devel_kit=		${WRKDIR}/nginx-module-ndk
 DEVEL_KIT_VARS=			FIRST_DSO_EXTMODS+=devel_kit
 
 ENCRYPTSESSION_IMPLIES=		DEVEL_KIT
-ENCRYPTSESSION_GH_TUPLE=	openresty:encrypted-session-nginx-module:v0.09:encryptsession
+ENCRYPTSESSION_BUILD_DEPENDS=	nginx-module-encrypted-session>0:www/nginx-module-encrypted-session
+WRKSRC_encryptsession=		${WRKDIR}/encrypted-session-nginx-module
 ENCRYPTSESSION_VARS=		DSO_EXTMODS+=encryptsession
 
 FIPS_CHECK_IMPLIES=	HTTP_SSL
@@ -102,7 +103,8 @@ HTTP_AUTH_LDAP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_auth_ldap_module.
 HTTP_AUTH_LDAP_VARS=		DSO_EXTMODS+=http_auth_ldap
 HTTP_AUTH_LDAP_USES=		ldap
 
-HTTP_AUTH_PAM_GH_TUPLE=		sto:ngx_http_auth_pam_module:v1.5.3:auth_pam
+HTTP_AUTH_PAM_BUILD_DEPENDS=	nginx-module-auth-pam>0:www/nginx-module-auth-pam
+WRKSRC_auth_pam=		${WRKDIR}/ngx_http_auth_pam_module
 HTTP_AUTH_PAM_VARS=		DSO_EXTMODS+=auth_pam
 
 HTTP_DAV_EXT_IMPLIES=		HTTP_DAV
@@ -115,14 +117,16 @@ HTTP_DAV_EXT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_dav_ext_module.c
 HTTP_EVAL_GH_TUPLE=		openresty:nginx-eval-module:582bd25:eval
 HTTP_EVAL_VARS=			DSO_EXTMODS+=eval
 
-HTTP_FANCYINDEX_GH_TUPLE=	aperezdc:ngx-fancyindex:v0.5.2:fancyindex
+HTTP_FANCYINDEX_BUILD_DEPENDS=	nginx-module-fancyindex>0:www/nginx-module-fancyindex
+WRKSRC_fancyindex=		${WRKDIR}/ngx-fancyindex
 HTTP_FANCYINDEX_VARS=		DSO_EXTMODS+=fancyindex
 
 HTTP_FOOTER_GH_TUPLE=		alibaba:nginx-http-footer-filter:1.2.2:footer
 HTTP_FOOTER_VARS=		DSO_EXTMODS+=footer
 HTTP_FOOTER_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-http-footer-filter-config
 
-HTTP_GEOIP2_GH_TUPLE=		leev:ngx_http_geoip2_module:3.4:geoip2
+HTTP_GEOIP2_BUILD_DEPENDS=	nginx-module-geoip2>0:www/nginx-module-geoip2
+WRKSRC_geoip2=			${WRKDIR}/ngx_http_geoip2_module
 HTTP_GEOIP2_CFLAGS=		-I${LOCALBASE}/include
 HTTP_GEOIP2_VARS=		DSO_EXTMODS+=geoip2
 HTTP_GEOIP2_LIB_DEPENDS=	libmaxminddb.so:net/libmaxminddb
@@ -242,7 +246,8 @@ LINK_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-link-function-config \
 			${PATCHDIR}/extra-patch-ngx_link_func_module.c
 LINK_VARS=		DSO_EXTMODS+=link
 
-MEMC_GH_TUPLE=		openresty:memc-nginx-module:v0.19:memc
+MEMC_BUILD_DEPENDS=	nginx-module-memc>0:www/nginx-module-memc
+WRKSRC_memc=		${WRKDIR}/memc-nginx-module
 MEMC_VARS=		DSO_EXTMODS+=memc
 
 MODSECURITY3_IMPLIES=		HTTP_ADDITION HTTP_IMAGE_FILTER HTTP_GUNZIP_FILTER HTTP_XSLT
diff --git a/www/freenginx/distinfo b/www/freenginx/distinfo
index 1608c4a66114..2b4cfd68f8dd 100644
--- a/www/freenginx/distinfo
+++ b/www/freenginx/distinfo
@@ -15,8 +15,6 @@ SHA256 (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 86e7c6ed6dba2d4c5f5b
 SIZE (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 23003
 SHA256 (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = bb2a4b1a0e5ffa0203c1be854e663fc92cee0d7b5e0f7a38c0e163ae9124a38f
 SIZE (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = 53336
-SHA256 (openresty-encrypted-session-nginx-module-v0.09_GH0.tar.gz) = fe9b95acf9726aefd71bf0aca6c11bee007f1da67e64be9b21a7131f0ed75ba6
-SIZE (openresty-encrypted-session-nginx-module-v0.09_GH0.tar.gz) = 11847
 SHA256 (openresty-headers-more-nginx-module-06dc0be_GH0.tar.gz) = 883b1e31d59f3eb1e76b34259711ad65a3443102973dcf22df329397f3d5eaa4
 SIZE (openresty-headers-more-nginx-module-06dc0be_GH0.tar.gz) = 29438
 SHA256 (atomx-nginx-http-auth-digest-274490c_GH0.tar.gz) = 0839c33c2f8d519f92daae274f62cf87eb68415d562c6500ee3e3721ce80557c
@@ -25,18 +23,12 @@ SHA256 (stnoonan-spnego-http-auth-nginx-module-3575542_GH0.tar.gz) = 6d710f97bef
 SIZE (stnoonan-spnego-http-auth-nginx-module-3575542_GH0.tar.gz) = 24680
 SHA256 (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = e76e9e117ad51af578a68fa7a30c256178796bb271fa77f01c93281a92b09921
 SIZE (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = 18547
-SHA256 (sto-ngx_http_auth_pam_module-v1.5.3_GH0.tar.gz) = 882018fea8d6955ab3fe294aafa8ebb1fdff4eac313c29583fef02c6de76fae7
-SIZE (sto-ngx_http_auth_pam_module-v1.5.3_GH0.tar.gz) = 7084
 SHA256 (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = d2499d94d82d4e4eac8425d799e52883131ae86a956524040ff2fd230ef9f859
 SIZE (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = 14558
 SHA256 (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 014bedb2b334ba8e8e23b4c660590357f8055dbed7b9b017e4cc2937876a8822
 SIZE (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 14849
-SHA256 (aperezdc-ngx-fancyindex-v0.5.2_GH0.tar.gz) = c3dd84d8ba0b8daeace3041ef5987e3fb96e9c7c17df30c9ffe2fe3aa2a0ca31
-SIZE (aperezdc-ngx-fancyindex-v0.5.2_GH0.tar.gz) = 29052
 SHA256 (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3493b54460c59370f9f60c6e662862752f1920fc6e684f7a66bb2b3260692813
 SIZE (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3934
-SHA256 (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = ad72fc23348d715a330994984531fab9b3606e160483236737f9a4a6957d9452
-SIZE (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = 8877
 SHA256 (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 86d6d6d6b4437ecc621c5aac7bd5475dffd33afb70a51c5ea3c7f341ded46efb
 SIZE (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 5462
 SHA256 (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = edbafe23087f019364f9d1c1c615fdbc5116ec727c49bf442e3e4b39441fc4cc
@@ -67,8 +59,6 @@ SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85be
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
 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
-SIZE (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 34654
 SHA256 (wargio-naxsi-1.6_GH0.tar.gz) = e5920fdd09cae155b89eb21a94a21c029ebfdb056c284130221525be54044aae
 SIZE (wargio-naxsi-1.6_GH0.tar.gz) = 1116227
 SHA256 (libinjection-libinjection-4aa3894_GH0.tar.gz) = ededea133e89e238ef2e60d0d62ef7ef9e741449eed8c5d856007132505bcd5b
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 365b82158d42..3094b8a9549e 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -384,6 +384,36 @@ pre-configure-HTTP_JSON_STATUS-on:
 		${WRKSRC_json_status}
 	@${CHMOD} -R u+w ${WRKSRC_json_status}
 
+pre-configure-MEMC-on:
+	@${RM} -rf ${WRKSRC_memc}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-memc \
+		${WRKSRC_memc}
+	@${CHMOD} -R u+w ${WRKSRC_memc}
+
+pre-configure-ENCRYPTSESSION-on:
+	@${RM} -rf ${WRKSRC_encryptsession}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-encrypted-session \
+		${WRKSRC_encryptsession}
+	@${CHMOD} -R u+w ${WRKSRC_encryptsession}
+
+pre-configure-HTTP_FANCYINDEX-on:
+	@${RM} -rf ${WRKSRC_fancyindex}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-fancyindex \
+		${WRKSRC_fancyindex}
+	@${CHMOD} -R u+w ${WRKSRC_fancyindex}
+
+pre-configure-HTTP_AUTH_PAM-on:
+	@${RM} -rf ${WRKSRC_auth_pam}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-auth-pam \
+		${WRKSRC_auth_pam}
+	@${CHMOD} -R u+w ${WRKSRC_auth_pam}
+
+pre-configure-HTTP_GEOIP2-on:
+	@${RM} -rf ${WRKSRC_geoip2}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-geoip2 \
+		${WRKSRC_geoip2}
+	@${CHMOD} -R u+w ${WRKSRC_geoip2}
+
 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 d208f80ebd65..b20e1dbdd669 100644
--- a/www/nginx-devel/Makefile.extmod
+++ b/www/nginx-devel/Makefile.extmod
@@ -56,7 +56,8 @@ WRKSRC_devel_kit=		${WRKDIR}/nginx-module-ndk
 DEVEL_KIT_VARS=			FIRST_DSO_EXTMODS+=devel_kit
 
 ENCRYPTSESSION_IMPLIES=		DEVEL_KIT
-ENCRYPTSESSION_GH_TUPLE=	openresty:encrypted-session-nginx-module:7ffe4ec:encryptsession
+ENCRYPTSESSION_BUILD_DEPENDS=	nginx-module-encrypted-session>0:www/nginx-module-encrypted-session
+WRKSRC_encryptsession=		${WRKDIR}/encrypted-session-nginx-module
 ENCRYPTSESSION_VARS=		DSO_EXTMODS+=encryptsession
 
 FIPS_CHECK_IMPLIES=	HTTP_SSL
@@ -100,7 +101,8 @@ HTTP_AUTH_LDAP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_auth_ldap_module.
 HTTP_AUTH_LDAP_VARS=		DSO_EXTMODS+=http_auth_ldap
 HTTP_AUTH_LDAP_USES=		ldap
 
-HTTP_AUTH_PAM_GH_TUPLE=		sto:ngx_http_auth_pam_module:v1.5.5:auth_pam
+HTTP_AUTH_PAM_BUILD_DEPENDS=	nginx-module-auth-pam>0:www/nginx-module-auth-pam
+WRKSRC_auth_pam=		${WRKDIR}/ngx_http_auth_pam_module
 HTTP_AUTH_PAM_VARS=		DSO_EXTMODS+=auth_pam
 
 HTTP_DAV_EXT_IMPLIES=		HTTP_DAV
@@ -113,14 +115,16 @@ HTTP_DAV_EXT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_dav_ext_module.c
 HTTP_EVAL_GH_TUPLE=		openresty:nginx-eval-module:13425e8:eval
 HTTP_EVAL_VARS=			DSO_EXTMODS+=eval
 
-HTTP_FANCYINDEX_GH_TUPLE=	aperezdc:ngx-fancyindex:cbc0d3f:fancyindex
+HTTP_FANCYINDEX_BUILD_DEPENDS=	nginx-module-fancyindex>0:www/nginx-module-fancyindex
+WRKSRC_fancyindex=		${WRKDIR}/ngx-fancyindex
 HTTP_FANCYINDEX_VARS=		DSO_EXTMODS+=fancyindex
 
 HTTP_FOOTER_GH_TUPLE=		alibaba:nginx-http-footer-filter:1.2.2:footer
 HTTP_FOOTER_VARS=		DSO_EXTMODS+=footer
 HTTP_FOOTER_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-http-footer-filter-config
 
-HTTP_GEOIP2_GH_TUPLE=		leev:ngx_http_geoip2_module:445df24:geoip2
+HTTP_GEOIP2_BUILD_DEPENDS=	nginx-module-geoip2>0:www/nginx-module-geoip2
+WRKSRC_geoip2=			${WRKDIR}/ngx_http_geoip2_module
 HTTP_GEOIP2_CFLAGS=		-I${LOCALBASE}/include
 HTTP_GEOIP2_VARS=		DSO_EXTMODS+=geoip2
 HTTP_GEOIP2_LIB_DEPENDS=	libmaxminddb.so:net/libmaxminddb
@@ -236,7 +240,8 @@ LINK_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-link-function-config \
 			${PATCHDIR}/extra-patch-ngx_link_func_module.c
 LINK_VARS=		DSO_EXTMODS+=link
 
-MEMC_GH_TUPLE=		openresty:memc-nginx-module:v0.20:memc
+MEMC_BUILD_DEPENDS=	nginx-module-memc>0:www/nginx-module-memc
+WRKSRC_memc=		${WRKDIR}/memc-nginx-module
 MEMC_VARS=		DSO_EXTMODS+=memc
 
 MODSECURITY3_IMPLIES=		HTTP_ADDITION HTTP_IMAGE_FILTER HTTP_GUNZIP_FILTER HTTP_XSLT
diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo
index e27b22e0737c..bf83385ffdf6 100644
--- a/www/nginx-devel/distinfo
+++ b/www/nginx-devel/distinfo
@@ -11,8 +11,6 @@ SHA256 (ZigzagAK-ngx_dynamic_upstream-ab67fe7_GH0.tar.gz) = 4610da3ce9c35e3eef0e
 SIZE (ZigzagAK-ngx_dynamic_upstream-ab67fe7_GH0.tar.gz) = 22991
 SHA256 (openresty-echo-nginx-module-4eeda3c_GH0.tar.gz) = 64093d606c7bc61a26ca49bfa7c4a2dacec6013ce158463a377592a6f7224444
 SIZE (openresty-echo-nginx-module-4eeda3c_GH0.tar.gz) = 53544
-SHA256 (openresty-encrypted-session-nginx-module-7ffe4ec_GH0.tar.gz) = 1848ee88be81350326918930463e0f2be2013ab76ae589d01f00fd81c5da0c07
-SIZE (openresty-encrypted-session-nginx-module-7ffe4ec_GH0.tar.gz) = 11899
 SHA256 (openresty-headers-more-nginx-module-v0.39_GH0.tar.gz) = dde68d3fa2a9fc7f52e436d2edc53c6d703dcd911283965d889102d3a877c778
 SIZE (openresty-headers-more-nginx-module-v0.39_GH0.tar.gz) = 29616
 SHA256 (atomx-nginx-http-auth-digest-ac91c88_GH0.tar.gz) = 31b2a737d3d5d118a286a0b8a6e2637eda313dba07a9a5824e4c6e33ea6e2b80
@@ -23,18 +21,12 @@ SHA256 (stnoonan-spnego-http-auth-nginx-module-v1.1.3_GH0.tar.gz) = 0e1e54f8ab7d
 SIZE (stnoonan-spnego-http-auth-nginx-module-v1.1.3_GH0.tar.gz) = 32975
 SHA256 (kvspb-nginx-auth-ldap-241200e_GH0.tar.gz) = d3aa3a5ead311b34059d6ab1b6d2cf3ac8269c47a87b768523c07381229db470
 SIZE (kvspb-nginx-auth-ldap-241200e_GH0.tar.gz) = 18541
-SHA256 (sto-ngx_http_auth_pam_module-v1.5.5_GH0.tar.gz) = 98a71617d9119ae784993e3789ce8766fdf2ff2479691f3dc6cf8d8763f8d364
-SIZE (sto-ngx_http_auth_pam_module-v1.5.5_GH0.tar.gz) = 7233
 SHA256 (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = d2499d94d82d4e4eac8425d799e52883131ae86a956524040ff2fd230ef9f859
 SIZE (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = 14558
 SHA256 (openresty-nginx-eval-module-13425e8_GH0.tar.gz) = 48664ecd18041633829fc66b5e339ca7e75f44648c7bcbdd18e8cf8691a100bd
 SIZE (openresty-nginx-eval-module-13425e8_GH0.tar.gz) = 14936
-SHA256 (aperezdc-ngx-fancyindex-cbc0d3f_GH0.tar.gz) = ded74515205e1e7a3a0175214bbe62ac3a13c21bd428084783d6345520bed782
-SIZE (aperezdc-ngx-fancyindex-cbc0d3f_GH0.tar.gz) = 30334
 SHA256 (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3493b54460c59370f9f60c6e662862752f1920fc6e684f7a66bb2b3260692813
 SIZE (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3934
-SHA256 (leev-ngx_http_geoip2_module-445df24_GH0.tar.gz) = f19985b13e4095168a60aab5a1b29940ff586bf7571c61aa70ca7cd2f807850c
-SIZE (leev-ngx_http_geoip2_module-445df24_GH0.tar.gz) = 8889
 SHA256 (ip2location-ip2location-nginx-5f2c59a_GH0.tar.gz) = 3eb29b516d80afcc5267ef436bd527b0810257437bce48bdfd6070dd10f1b767
 SIZE (ip2location-ip2location-nginx-5f2c59a_GH0.tar.gz) = 5506
 SHA256 (ip2location-ip2proxy-nginx-f3e7e7d_GH0.tar.gz) = 90dc4a10dd8fc4af3ffdd2cf451368eca1d3b90261ec1944ad629b2302932638
@@ -67,8 +59,6 @@ SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85be
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
 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
-SIZE (openresty-memc-nginx-module-v0.20_GH0.tar.gz) = 34736
 SHA256 (nats-io-nginx-nats-6f7adf1_GH0.tar.gz) = 2fc9489e85a6d871524dea36ae801b60cbfc2a9f332c91ef3843d5f8e6f79652
 SIZE (nats-io-nginx-nats-6f7adf1_GH0.tar.gz) = 31761
 SHA256 (wargio-naxsi-1.7_GH0.tar.gz) = adee817da71913f64a9fb0fca142d9520bb0e5014b1acc797841cd8e31273f4d
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index 4cfeee586d08..7981acd1ee1c 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	nginx
 PORTVERSION=	${NGINX_VERSION}
 .include "version.mk"
-PORTREVISION=	3
+PORTREVISION=	4
 PORTEPOCH=	3
 CATEGORIES=	www
 MASTER_SITES=	https://nginx.org/download/ \
@@ -373,6 +373,36 @@ pre-configure-HTTP_JSON_STATUS-on:
 		${WRKSRC_json_status}
 	@${CHMOD} -R u+w ${WRKSRC_json_status}
 
+pre-configure-MEMC-on:
+	@${RM} -rf ${WRKSRC_memc}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-memc \
+		${WRKSRC_memc}
+	@${CHMOD} -R u+w ${WRKSRC_memc}
+
+pre-configure-ENCRYPTSESSION-on:
+	@${RM} -rf ${WRKSRC_encryptsession}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-encrypted-session \
+		${WRKSRC_encryptsession}
+	@${CHMOD} -R u+w ${WRKSRC_encryptsession}
+
+pre-configure-HTTP_FANCYINDEX-on:
+	@${RM} -rf ${WRKSRC_fancyindex}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-fancyindex \
+		${WRKSRC_fancyindex}
+	@${CHMOD} -R u+w ${WRKSRC_fancyindex}
+
+pre-configure-HTTP_AUTH_PAM-on:
+	@${RM} -rf ${WRKSRC_auth_pam}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-auth-pam \
+		${WRKSRC_auth_pam}
+	@${CHMOD} -R u+w ${WRKSRC_auth_pam}
+
+pre-configure-HTTP_GEOIP2-on:
+	@${RM} -rf ${WRKSRC_geoip2}
+	@${CP} -R ${LOCALBASE}/share/nginx/modules/nginx-module-geoip2 \
+		${WRKSRC_geoip2}
+	@${CHMOD} -R u+w ${WRKSRC_geoip2}
+
 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 fccfc88e62e8..f7fd87878a70 100644
--- a/www/nginx/Makefile.extmod
+++ b/www/nginx/Makefile.extmod
@@ -56,7 +56,8 @@ WRKSRC_devel_kit=		${WRKDIR}/nginx-module-ndk
 DEVEL_KIT_VARS=			FIRST_DSO_EXTMODS+=devel_kit
 
 ENCRYPTSESSION_IMPLIES=		DEVEL_KIT
-ENCRYPTSESSION_GH_TUPLE=	openresty:encrypted-session-nginx-module:v0.09:encryptsession
+ENCRYPTSESSION_BUILD_DEPENDS=	nginx-module-encrypted-session>0:www/nginx-module-encrypted-session
+WRKSRC_encryptsession=		${WRKDIR}/encrypted-session-nginx-module
 ENCRYPTSESSION_VARS=		DSO_EXTMODS+=encryptsession
 
 FIPS_CHECK_IMPLIES=	HTTP_SSL
@@ -95,7 +96,8 @@ HTTP_AUTH_LDAP_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_auth_ldap_module.
 HTTP_AUTH_LDAP_VARS=		DSO_EXTMODS+=http_auth_ldap
 HTTP_AUTH_LDAP_USES=		ldap
 
-HTTP_AUTH_PAM_GH_TUPLE=		sto:ngx_http_auth_pam_module:v1.5.3:auth_pam
+HTTP_AUTH_PAM_BUILD_DEPENDS=	nginx-module-auth-pam>0:www/nginx-module-auth-pam
+WRKSRC_auth_pam=		${WRKDIR}/ngx_http_auth_pam_module
 HTTP_AUTH_PAM_VARS=		DSO_EXTMODS+=auth_pam
 
 HTTP_DAV_EXT_IMPLIES=		HTTP_DAV
@@ -108,14 +110,16 @@ HTTP_DAV_EXT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-ngx_http_dav_ext_module.c
 HTTP_EVAL_GH_TUPLE=		openresty:nginx-eval-module:582bd25:eval
 HTTP_EVAL_VARS=			DSO_EXTMODS+=eval
 
-HTTP_FANCYINDEX_GH_TUPLE=	aperezdc:ngx-fancyindex:v0.5.2:fancyindex
+HTTP_FANCYINDEX_BUILD_DEPENDS=	nginx-module-fancyindex>0:www/nginx-module-fancyindex
+WRKSRC_fancyindex=		${WRKDIR}/ngx-fancyindex
 HTTP_FANCYINDEX_VARS=		DSO_EXTMODS+=fancyindex
 
 HTTP_FOOTER_GH_TUPLE=		alibaba:nginx-http-footer-filter:1.2.2:footer
 HTTP_FOOTER_VARS=		DSO_EXTMODS+=footer
 HTTP_FOOTER_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-http-footer-filter-config
 
-HTTP_GEOIP2_GH_TUPLE=		leev:ngx_http_geoip2_module:3.4:geoip2
+HTTP_GEOIP2_BUILD_DEPENDS=	nginx-module-geoip2>0:www/nginx-module-geoip2
+WRKSRC_geoip2=			${WRKDIR}/ngx_http_geoip2_module
 HTTP_GEOIP2_CFLAGS=		-I${LOCALBASE}/include
 HTTP_GEOIP2_VARS=		DSO_EXTMODS+=geoip2
 HTTP_GEOIP2_LIB_DEPENDS=	libmaxminddb.so:net/libmaxminddb
@@ -234,7 +238,8 @@ LINK_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-nginx-link-function-config \
 			${PATCHDIR}/extra-patch-ngx_link_func_module.c
 LINK_VARS=		DSO_EXTMODS+=link
 
-MEMC_GH_TUPLE=		openresty:memc-nginx-module:v0.19:memc
+MEMC_BUILD_DEPENDS=	nginx-module-memc>0:www/nginx-module-memc
+WRKSRC_memc=		${WRKDIR}/memc-nginx-module
 MEMC_VARS=		DSO_EXTMODS+=memc
 
 MODSECURITY3_IMPLIES=		HTTP_ADDITION HTTP_IMAGE_FILTER HTTP_GUNZIP_FILTER HTTP_XSLT
diff --git a/www/nginx/distinfo b/www/nginx/distinfo
index 32f7c090cb8f..65fba0bc34c1 100644
--- a/www/nginx/distinfo
+++ b/www/nginx/distinfo
@@ -13,8 +13,6 @@ SHA256 (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 86e7c6ed6dba2d4c5f5b
 SIZE (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 23003
 SHA256 (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = bb2a4b1a0e5ffa0203c1be854e663fc92cee0d7b5e0f7a38c0e163ae9124a38f
 SIZE (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = 53336
-SHA256 (openresty-encrypted-session-nginx-module-v0.09_GH0.tar.gz) = fe9b95acf9726aefd71bf0aca6c11bee007f1da67e64be9b21a7131f0ed75ba6
-SIZE (openresty-encrypted-session-nginx-module-v0.09_GH0.tar.gz) = 11847
 SHA256 (openresty-headers-more-nginx-module-06dc0be_GH0.tar.gz) = 883b1e31d59f3eb1e76b34259711ad65a3443102973dcf22df329397f3d5eaa4
 SIZE (openresty-headers-more-nginx-module-06dc0be_GH0.tar.gz) = 29438
 SHA256 (atomx-nginx-http-auth-digest-274490c_GH0.tar.gz) = 0839c33c2f8d519f92daae274f62cf87eb68415d562c6500ee3e3721ce80557c
@@ -23,18 +21,12 @@ SHA256 (stnoonan-spnego-http-auth-nginx-module-3575542_GH0.tar.gz) = 6d710f97bef
 SIZE (stnoonan-spnego-http-auth-nginx-module-3575542_GH0.tar.gz) = 24680
 SHA256 (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = e76e9e117ad51af578a68fa7a30c256178796bb271fa77f01c93281a92b09921
 SIZE (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = 18547
-SHA256 (sto-ngx_http_auth_pam_module-v1.5.3_GH0.tar.gz) = 882018fea8d6955ab3fe294aafa8ebb1fdff4eac313c29583fef02c6de76fae7
-SIZE (sto-ngx_http_auth_pam_module-v1.5.3_GH0.tar.gz) = 7084
 SHA256 (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = d2499d94d82d4e4eac8425d799e52883131ae86a956524040ff2fd230ef9f859
 SIZE (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = 14558
 SHA256 (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 014bedb2b334ba8e8e23b4c660590357f8055dbed7b9b017e4cc2937876a8822
 SIZE (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 14849
-SHA256 (aperezdc-ngx-fancyindex-v0.5.2_GH0.tar.gz) = c3dd84d8ba0b8daeace3041ef5987e3fb96e9c7c17df30c9ffe2fe3aa2a0ca31
-SIZE (aperezdc-ngx-fancyindex-v0.5.2_GH0.tar.gz) = 29052
 SHA256 (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3493b54460c59370f9f60c6e662862752f1920fc6e684f7a66bb2b3260692813
 SIZE (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3934
-SHA256 (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = ad72fc23348d715a330994984531fab9b3606e160483236737f9a4a6957d9452
-SIZE (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = 8877
 SHA256 (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 86d6d6d6b4437ecc621c5aac7bd5475dffd33afb70a51c5ea3c7f341ded46efb
 SIZE (ip2location-ip2location-nginx-2df35fb_GH0.tar.gz) = 5462
 SHA256 (ip2location-ip2proxy-nginx-02ce447_GH0.tar.gz) = edbafe23087f019364f9d1c1c615fdbc5116ec727c49bf442e3e4b39441fc4cc
@@ -65,8 +57,6 @@ SHA256 (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 645035b7d7a83ab3f47c692386e85be
 SIZE (evanmiller-mod_zip-a9f9afa_GH0.tar.gz) = 30917
 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
-SIZE (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 34654
 SHA256 (wargio-naxsi-1.6_GH0.tar.gz) = e5920fdd09cae155b89eb21a94a21c029ebfdb056c284130221525be54044aae
 SIZE (wargio-naxsi-1.6_GH0.tar.gz) = 1116227
 SHA256 (libinjection-libinjection-4aa3894_GH0.tar.gz) = ededea133e89e238ef2e60d0d62ef7ef9e741449eed8c5d856007132505bcd5b