aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJochen Neumeister <joneum@FreeBSD.org>2018-03-28 23:02:00 +0800
committerJochen Neumeister <joneum@FreeBSD.org>2018-03-28 23:02:00 +0800
commit005fc9862b6fdcde4c05364d341afa667ab28c39 (patch)
tree31282aa44fadd9952fdc35f50999f1b9d74c6a49
parente713eb370b5dd86d07f8508be64df04a879523ef (diff)
downloadfreebsd-ports-005fc9862b6fdcde4c05364d341afa667ab28c39.tar.gz
freebsd-ports-005fc9862b6fdcde4c05364d341afa667ab28c39.tar.zst
freebsd-ports-005fc9862b6fdcde4c05364d341afa667ab28c39.zip
www/nginx: make easier to read and maintain:
* Objectives: - make easier to read and maintain - Module config in a single section - use OPTIONS framwework where possible * Add options groups for mail and http * Use options groups to set _IMPLIES instead of large .if HTTP and MAIL blocks * Rename all _VERSION vars to align with the OPTION name * Add DEVEL_KIT option so we can automate * Separate bundled and 3rd party modules * Order options alphabetically * Pass openssl dir to configure * Separate external modules in separate makefile www/nginx is buildable again with this: * Fix sub-paths for DSO_EXTMODS introducing ${WRKSRC_mod} * Be smarter about the if ${PORT_OPTIONS:MDSO} * move post-install-OPT-on to where possible * Add some OPT_NGINX_VER if used multiple times Reviewed by: brnrd Differential Revision: https://reviews.freebsd.org/D14773
Notes
Notes: svn path=/head/; revision=465814
-rw-r--r--www/nginx/Makefile1380
-rw-r--r--www/nginx/Makefile.extmod291
-rw-r--r--www/nginx/Makefile.options.desc107
-rw-r--r--www/nginx/files/extra-patch-nginx-ct-LibreSSL20
-rw-r--r--www/nginx/pkg-plist12
5 files changed, 616 insertions, 1194 deletions
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index d6605456ccdb..2a7aff4a8d3b 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -6,8 +6,8 @@ PORTVERSION= 1.12.2
PORTREVISION?= 11
PORTEPOCH= 2
CATEGORIES= www
-MASTER_SITES= http://nginx.org/download/
-MASTER_SITES+= LOCAL/osa
+MASTER_SITES= http://nginx.org/download/ \
+ LOCAL/osa
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER?= joneum@FreeBSD.org
@@ -19,248 +19,12 @@ CONFLICTS_INSTALL= nginx-devel
PORTSCOUT= limit:^1\.12\.[0-9]*
-USES+= cpe
+USES= cpe
CPE_VENDOR= nginx
CPE_PRODUCT= nginx
USE_GITHUB= nodefault
-NO_OPTIONS_SORT= yes
-OPTIONS_DEFINE= \
- DSO \
- DEBUG \
- DEBUGLOG \
- FILE_AIO \
- IPV6 \
- GOOGLE_PERFTOOLS \
- HTTP \
- HTTP_ADDITION \
- HTTP_AUTH_REQ \
- HTTP_CACHE \
- HTTP_DAV \
- HTTP_FLV \
- HTTP_GEOIP \
- HTTP_GZIP_STATIC \
- HTTP_GUNZIP_FILTER \
- HTTP_IMAGE_FILTER \
- HTTP_MP4 \
- HTTP_PERL \
- HTTP_RANDOM_INDEX \
- HTTP_REALIP \
- HTTP_REWRITE \
- HTTP_SECURE_LINK \
- HTTP_SLICE \
- HTTP_SSL \
- HTTP_STATUS \
- HTTP_SUB \
- HTTP_XSLT \
- MAIL \
- MAIL_IMAP \
- MAIL_POP3 \
- MAIL_SMTP \
- MAIL_SSL \
- HTTPV2 \
- NJS \
- STREAM \
- STREAM_SSL \
- STREAM_SSL_PREREAD \
- THREADS \
- WWW \
- AJP \
- AWS_AUTH \
- CACHE_PURGE \
- CLOJURE \
- CT \
- ECHO \
- FASTDFS \
- HEADERS_MORE \
- HTTP_ACCEPT_LANGUAGE \
- HTTP_AUTH_DIGEST \
- HTTP_AUTH_KRB5 \
- HTTP_AUTH_LDAP \
- HTTP_AUTH_PAM \
- HTTP_DAV_EXT \
- HTTP_EVAL \
- HTTP_FANCYINDEX \
- HTTP_FOOTER \
- HTTP_GEOIP2 \
- HTTP_JSON_STATUS \
- HTTP_MOGILEFS \
- HTTP_MP4_H264 \
- HTTP_NOTICE \
- HTTP_PUSH \
- HTTP_PUSH_STREAM \
- HTTP_REDIS \
- HTTP_RESPONSE \
- HTTP_SUBS_FILTER \
- HTTP_TARANTOOL \
- HTTP_UPLOAD \
- HTTP_UPLOAD_PROGRESS \
- HTTP_UPSTREAM_CHECK \
- HTTP_UPSTREAM_FAIR \
- HTTP_UPSTREAM_STICKY \
- HTTP_VIDEO_THUMBEXTRACTOR \
- HTTP_ZIP \
- ARRAYVAR \
- BROTLI \
- DRIZZLE \
- DYNAMIC_UPSTREAM \
- ENCRYPTSESSION \
- FORMINPUT \
- GRIDFS \
- ICONV \
- LET \
- LUA \
- MEMC \
- MODSECURITY \
- MODSECURITY3 \
- NAXSI \
- PASSENGER \
- POSTGRES \
- RDS_CSV \
- RDS_JSON \
- REDIS2 \
- RTMP \
- SET_MISC \
- SFLOW \
- SHIBBOLETH \
- SLOWFS_CACHE \
- SMALL_LIGHT \
- SRCACHE \
- X11 \
- XSS
-
-OPTIONS_DEFAULT?=DSO FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \
- HTTP_DAV HTTP_FLV HTTP_GZIP_STATIC HTTP_GUNZIP_FILTER \
- HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK \
- HTTP_SLICE HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTP_SUB \
- HTTPV2 MAIL MAIL_SSL STREAM STREAM_SSL STREAM_SSL_PREREAD \
- THREADS WWW
-
-# If the target is makesum, make sure that every distfile is fetched.
-.if ${.TARGETS:Mmakesum}
-OPTIONS_DEFAULT= ${OPTIONS_DEFINE}
-.endif
-
-DSO_DESC= Enable dynamic modules support
-DEBUG_DESC= Build with debugging support
-DEBUGLOG_DESC= Enable debug log (--with-debug)
-FILE_AIO_DESC= Enable file aio
-IPV6_DESC= Enable IPv6 support
-GOOGLE_PERFTOOLS_DESC= Enable google perftools module
-HTTP_DESC= Enable HTTP module
-HTTP_ADDITION_DESC= Enable http_addition module
-HTTP_AUTH_REQ_DESC= Enable http_auth_request module
-HTTP_CACHE_DESC= Enable http_cache module
-HTTP_DAV_DESC= Enable http_webdav module
-HTTP_FLV_DESC= Enable http_flv module
-HTTP_GEOIP_DESC= Enable http_geoip module
-HTTP_GZIP_STATIC_DESC= Enable http_gzip_static module
-HTTP_GUNZIP_FILTER_DESC= Enable http_gunzip_filter module
-HTTP_IMAGE_FILTER_DESC= Enable http_image_filter module
-HTTP_MP4_DESC= Enable http_mp4 module
-HTTP_PERL_DESC= Enable http_perl module
-HTTP_RANDOM_INDEX_DESC= Enable http_random_index module
-HTTP_REALIP_DESC= Enable http_realip module
-HTTP_REWRITE_DESC= Enable http_rewrite module
-HTTP_SECURE_LINK_DESC= Enable http_secure_link module
-HTTP_SLICE_DESC= Enable http_slice module
-HTTP_SSL_DESC= Enable http_ssl module
-HTTP_STATUS_DESC= Enable http_stub_status module
-HTTP_SUB_DESC= Enable http_sub module
-HTTP_XSLT_DESC= Enable http_xslt module
-MAIL_DESC= Enable IMAP4/POP3/SMTP proxy module
-MAIL_IMAP_DESC= Enable IMAP4 proxy module
-MAIL_POP3_DESC= Enable POP3 proxy module
-MAIL_SMTP_DESC= Enable SMTP proxy module
-MAIL_SSL_DESC= Enable mail_ssl module
-HTTPV2_DESC= Enable HTTP/2 protocol support (SSL req.)
-NJS_DESC= Enable http_javascript module
-STREAM_DESC= Enable stream module
-STREAM_SSL_DESC= Enable stream_ssl module (SSL req.)
-STREAM_SSL_PREREAD_DESC= Enable stream_ssl_preread module (SSL req.)
-THREADS_DESC= Enable threads support
-WWW_DESC= Enable html sample files
-AJP_DESC= 3rd party ajp module
-AWS_AUTH_DESC= 3rd party aws auth module
-CACHE_PURGE_DESC= 3rd party cache_purge module
-CLOJURE_DESC= 3rd party clojure module
-CT_DESC= 3rd party cert_transparency module (SSL req.)
-ECHO_DESC= 3rd party echo module
-FASTDFS_DESC= 3rd party fastdfs module
-HEADERS_MORE_DESC= 3rd party headers_more module
-HTTP_ACCEPT_LANGUAGE_DESC= 3rd party accept_language module
-HTTP_AUTH_DIGEST_DESC= 3rd party http_authdigest module
-HTTP_AUTH_KRB5_DESC= 3rd party http_auth_gss module
-HTTP_AUTH_LDAP_DESC= 3rd party http_auth_ldap module
-HTTP_AUTH_PAM_DESC= 3rd party http_auth_pam module
-HTTP_DAV_EXT_DESC= 3rd party webdav_ext module
-HTTP_EVAL_DESC= 3rd party eval module
-HTTP_FANCYINDEX_DESC= 3rd party http_fancyindex module
-HTTP_FOOTER_DESC= 3rd party http_footer module
-HTTP_GEOIP2_DESC= 3rd party geoip2 module
-HTTP_JSON_STATUS_DESC= 3rd party http_json_status module
-HTTP_MOGILEFS_DESC= 3rd party mogilefs module
-HTTP_MP4_H264_DESC= 3rd party mp4/h264 module
-HTTP_NOTICE_DESC= 3rd party notice module
-HTTP_PUSH_DESC= 3rd party push module
-HTTP_PUSH_STREAM_DESC= 3rd party push stream module
-HTTP_REDIS_DESC= 3rd party http_redis module
-HTTP_RESPONSE_DESC= 3rd party http_response module
-HTTP_SUBS_FILTER_DESC= 3rd party subs filter module
-HTTP_TARANTOOL_DESC= 3rd party tarantool upstream module
-HTTP_UPLOAD_DESC= 3rd party upload module
-HTTP_UPLOAD_PROGRESS_DESC= 3rd party uploadprogress module
-HTTP_UPSTREAM_CHECK_DESC= 3rd party upstream check module
-HTTP_UPSTREAM_FAIR_DESC= 3rd party upstream fair module
-HTTP_UPSTREAM_STICKY_DESC= 3rd party upstream sticky module
-HTTP_VIDEO_THUMBEXTRACTOR_DESC= 3rd party video_thumbextractor module
-HTTP_ZIP_DESC= 3rd party http_zip module
-ARRAYVAR_DESC= 3rd party array_var module
-BROTLI_DESC= 3rd party brotli module
-DRIZZLE_DESC= 3rd party drizzlie module
-DYNAMIC_UPSTREAM_DESC= 3rd party dynamic_upstream module
-ENCRYPTSESSION_DESC= 3rd party encrypted_session module
-FORMINPUT_DESC= 3rd party form_input module
-GRIDFS_DESC= 3rd party gridfs module
-ICONV_DESC= 3rd party iconv module
-LET_DESC= 3rd party let module
-LUA_DESC= 3rd party lua module
-MEMC_DESC= 3rd party memc (memcached) module
-MODSECURITY_DESC= 3rd party mod_security module
-MODSECURITY3_DESC= 3rd party mod_security v3 module
-NAXSI_DESC= 3rd party naxsi module
-PASSENGER_DESC= 3rd party passenger module
-POSTGRES_DESC= 3rd party postgres module
-RDS_CSV_DESC= 3rd party rds_csv module
-RDS_JSON_DESC= 3rd party rds_json module
-REDIS2_DESC= 3rd party redis2 module
-RTMP_DESC= 3rd party rtmp module
-SET_MISC_DESC= 3rd party set_misc module
-SFLOW_DESC= 3rd party sflow module
-SHIBBOLETH_DESC= 3rd party shibboleth module
-SLOWFS_CACHE_DESC= 3rd party slowfs_cache module
-SMALL_LIGHT_DESC= 3rd party small_light module
-SRCACHE_DESC= 3rd party srcache module
-X11_DESC= graphics/ImageMagick[-nox11] dependency
-XSS_DESC= 3rd party xss module
-VIDEO_DESC= Video module support
-
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MX11}
-IMAGEMAGICK_LIB_DEPENDS= libMagickWand-6.so:graphics/ImageMagick
-.else
-IMAGEMAGICK_LIB_DEPENDS= libMagickWand-6.so:graphics/ImageMagick-nox11
-.endif
-
-.if ${PORT_OPTIONS:MPASSENGER}
-CATEGORIES+= ruby
-USE_RUBY= yes
-BUILD_DEPENDS+= ${LOCALBASE}/bin/rake:devel/rubygem-rake
-RAKE_BIN= ${LOCALBASE}/bin/rake
-.endif
-
NGINX_VARDIR?= /var
NGINX_LOGDIR?= ${NGINX_VARDIR}/log/nginx
NGINX_RUNDIR?= ${NGINX_VARDIR}/run
@@ -292,887 +56,163 @@ CONFIGURE_ARGS+=--prefix=${ETCDIR} \
--error-log-path=${NGINX_ERRORLOG} \
--user=${WWWOWN} --group=${WWWGRP}
-.if ${PORT_OPTIONS:MDSO}
-MODULESDIR= ${PREFIX}/libexec/${PORTNAME}
-CONFIGURE_ARGS+=--modules-path=${MODULESDIR}
-.endif
-
-.if empty(PORT_OPTIONS:MHTTP) && empty(PORT_OPTIONS:MMAIL)
-IGNORE= requires at least HTTP or MAIL to \
- be defined. Please do 'make config' again
-.endif
-
-.if ${PORT_OPTIONS:MDEBUG}
-CFLAGS+= -g
-STRIP= #do not strip if nginx with debug information
-.endif
-
-.if ${PORT_OPTIONS:MDEBUGLOG}
-CONFIGURE_ARGS+=--with-debug
-.endif
-
-.if ${PORT_OPTIONS:MFILE_AIO}
-CONFIGURE_ARGS+=--with-file-aio
-.endif
-
-.if empty(PORT_OPTIONS:MIPV6)
-CONFIGURE_ARGS+=--with-cc-opt="-DNGX_HAVE_INET6=0 -I ${LOCALBASE}/include"
-.else
-CATEGORIES+= ipv6
-.endif
+PLIST_SUB+= NGINX_TMPDIR=${NGINX_TMPDIR} NGINX_LOGDIR=${NGINX_LOGDIR} WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
-.if ${PORT_OPTIONS:MGOOGLE_PERFTOOLS}
-LIB_DEPENDS+= libprofiler.so:devel/google-perftools
-CONFIGURE_ARGS+=--with-google_perftools_module
-.endif
+USERS?= ${WWWOWN}
+GROUPS?=${WWWGRP}
-.if ${PORT_OPTIONS:MHTTP}
-CONFIGURE_ARGS+=--http-client-body-temp-path=${NGINX_TMPDIR}/client_body_temp \
- --http-fastcgi-temp-path=${NGINX_TMPDIR}/fastcgi_temp \
- --http-proxy-temp-path=${NGINX_TMPDIR}/proxy_temp \
- --http-scgi-temp-path=${NGINX_TMPDIR}/scgi_temp \
- --http-uwsgi-temp-path=${NGINX_TMPDIR}/uwsgi_temp \
- --http-log-path=${NGINX_ACCESSLOG}
+NO_OPTIONS_SORT= yes
-.if ${PORT_OPTIONS:MHTTP_ACCEPT_LANGUAGE}
-GIT_ACCEPT_LANGUAGE_VERSION= 2f69842
-GH_ACCOUNT+= giom:accept_language
-GH_PROJECT+= nginx_accept_language_module:accept_language
-GH_TAGNAME+= ${GIT_ACCEPT_LANGUAGE_VERSION}:accept_language
-CONFIGURE_ARGS+=--add-module=${WRKSRC_accept_language}
-.endif
+OPTIONS_GROUP= MAILGRP HTTPGRP
+# Modules that are part of the base nginx distribution
+OPTIONS_GROUP_HTTPGRP= GOOGLE_PERFTOOLS HTTP HTTP_ADDITION HTTP_AUTH_REQ \
+ HTTP_CACHE HTTP_DAV HTTP_FLV HTTP_GEOIP HTTP_GUNZIP_FILTER HTTP_GZIP_STATIC \
+ HTTP_IMAGE_FILTER HTTP_MP4 HTTP_PERL HTTP_RANDOM_INDEX HTTP_REALIP \
+ HTTP_REWRITE HTTP_SECURE_LINK HTTP_SLICE HTTP_SSL HTTP_STATUS HTTP_SUB \
+ HTTP_XSLT HTTPV2 STREAM STREAM_SSL STREAM_SSL_PREREAD
+# External modules (arrayvar MUST appear after devel_kit for build-dep)
+OPTIONS_GROUP_HTTPGRP+= AJP AWS_AUTH BROTLI CACHE_PURGE CLOJURE CT DEVEL_KIT \
+ ARRAYVAR DRIZZLE DYNAMIC_UPSTREAM ECHO ENCRYPTSESSION FASTDFS FORMINPUT \
+ GRIDFS HEADERS_MORE HTTP_ACCEPT_LANGUAGE HTTP_AUTH_DIGEST HTTP_AUTH_KRB5 \
+ HTTP_AUTH_LDAP HTTP_AUTH_PAM HTTP_DAV_EXT HTTP_EVAL HTTP_FANCYINDEX \
+ HTTP_FOOTER HTTP_GEOIP2 HTTP_JSON_STATUS HTTP_MOGILEFS HTTP_MP4_H264 \
+ HTTP_NOTICE HTTP_PUSH HTTP_PUSH_STREAM HTTP_REDIS HTTP_RESPONSE \
+ HTTP_SUBS_FILTER HTTP_TARANTOOL HTTP_UPLOAD HTTP_UPLOAD_PROGRESS \
+ HTTP_UPSTREAM_CHECK HTTP_UPSTREAM_FAIR HTTP_UPSTREAM_STICKY \
+ HTTP_VIDEO_THUMBEXTRACTOR HTTP_ZIP ICONV LET LUA MEMC MODSECURITY \
+ MODSECURITY3 NAXSI NJS PASSENGER POSTGRES RDS_CSV RDS_JSON REDIS2 RTMP \
+ SET_MISC SFLOW SHIBBOLETH SLOWFS_CACHE SMALL_LIGHT SRCACHE XSS
+OPTIONS_GROUP_MAILGRP= MAIL MAIL_IMAP MAIL_POP3 MAIL_SMTP MAIL_SSL
+OPTIONS_DEFINE= DEBUG DEBUGLOG DSO FILE_AIO IPV6 THREADS WWW
+OPTIONS_DEFAULT?=DSO FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \
+ HTTP_DAV HTTP_FLV HTTP_GZIP_STATIC HTTP_GUNZIP_FILTER \
+ HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK \
+ HTTP_SLICE HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTP_SUB \
+ HTTPV2 MAIL MAIL_SSL STREAM STREAM_SSL STREAM_SSL_PREREAD \
+ THREADS WWW
+OPTIONS_SUB= yes
-.if ${PORT_OPTIONS:MHTTP_ADDITION}
-CONFIGURE_ARGS+=--with-http_addition_module
-.endif
+.include "Makefile.options.desc"
-.if ${PORT_OPTIONS:MHTTP_AUTH_DIGEST}
-GIT_AUTH_DIGEST_VERSION= 274490c
-GH_ACCOUNT+= atomx:auth_digest
-GH_PROJECT+= nginx-http-auth-digest:auth_digest
-GH_TAGNAME+= ${GIT_AUTH_DIGEST_VERSION}:auth_digest
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_auth_digest}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_digest}
-.endif
-.endif
+.for opt in ${OPTIONS_GROUP_MAILGRP:NMAIL}
+${opt}_IMPLIES= MAIL
+.endfor
-.if ${PORT_OPTIONS:MHTTP_AUTH_KRB5}
-GIT_HTTP_AUTH_KRB5_VERSION= 7e028a5
-GH_ACCOUNT+= stnoonan:auth_krb5
-GH_PROJECT+= spnego-http-auth-nginx-module:auth_krb5
-GH_TAGNAME+= ${GIT_HTTP_AUTH_KRB5_VERSION}:auth_krb5
-CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_krb5}
-#EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-spnego-http-auth-nginx-module-config
-#OPTIONS_RADIO+= GSSAPI
-#OPTIONS_RADIO_GSSAPI+= GSSAPI_HEIMDAL GSSAPI_MIT
-#GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags
-#GSSAPI_MIT_USES= gssapi:mit
-.endif
+.for opt in ${OPTIONS_GROUP_HTTPGRP:NHTTP}
+${opt}_IMPLIES= HTTP
+.endfor
-.if ${PORT_OPTIONS:MHTTP_AUTH_LDAP}
-# WWW: https://github.com/kvspb/nginx-auth-ldap
-GIT_HTTP_AUTH_LDAP_VERSION= 42d195d
-GH_ACCOUNT+= kvspb:http_auth_ldap
-GH_PROJECT+= nginx-auth-ldap:http_auth_ldap
-GH_TAGNAME+= ${GIT_HTTP_AUTH_LDAP_VERSION}:http_auth_ldap
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_http_auth_ldap}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_http_auth_ldap}
-.endif
-USE_OPENLDAP= yes
-.endif
+# If the target is makesum, make sure that every distfile is fetched.
+.if ${.TARGETS:Mmakesum}
+OPTIONS_DEFAULT= ${OPTIONS_DEFINE} ${OPTIONS_GROUP_HTTP} ${OPTIONS_GROUP_MAIL}
+.endif
+
+# Non-module options handling
+DEBUG_CFLAGS= -g
+DEBUG_VARS= STRIP=#do not strip if nginx with debug information
+DEBUGLOG_CONFIGURE_ON= --with-debug
+DSO_CONFIGURE_ON= --modules-path=${MODULESDIR}
+DSO_VARS= MODULESDIR=${PREFIX}/libexec/${PORTNAME}
+FILE_AIO_CONFIGURE_ON= --with-file-aio
+IPV6_CONFIGURE_OFF= --with-cc-opt="-DNGX_HAVE_INET6=0 -I ${LOCALBASE}/include"
+IPV6_CATEGORIES= ipv6
+THREADS_CONFIGURE_ON= --with-threads
+WWW_PLIST_SUB= WWWDATA=""
+WWW_PLIST_SUB_OFF= WWWDATA="@comment "
+
+# Bundled modules
+GOOGLE_PERFTOOLS_LIB_DEPENDS= libprofiler.so:devel/google-perftools
+GOOGLE_PERFTOOLS_CONFIGURE_ON= --with-google_perftools_module
+HTTP_CONFIGURE_ON= --http-client-body-temp-path=${NGINX_TMPDIR}/client_body_temp \
+ --http-fastcgi-temp-path=${NGINX_TMPDIR}/fastcgi_temp \
+ --http-proxy-temp-path=${NGINX_TMPDIR}/proxy_temp \
+ --http-scgi-temp-path=${NGINX_TMPDIR}/scgi_temp \
+ --http-uwsgi-temp-path=${NGINX_TMPDIR}/uwsgi_temp \
+ --http-log-path=${NGINX_ACCESSLOG}
+HTTP_CONFIGURE_OFF= --without-http
+HTTP_PLIST_SUB= WWWDATA="@comment "
+HTTP_ADDITION_CONFIGURE_ON= --with-http_addition_module
+HTTP_AUTH_REQ_CONFIGURE_ON= --with-http_auth_request_module
+HTTP_CACHE_CONFIGURE_OFF= --without-http-cache
+HTTP_DAV_CONFIGURE_ARGS= --with-http_dav_module
+HTTP_FLV_CONFIGURE_ON= --with-http_flv_module
+HTTP_GEOIP_LIB_DEPENDS= libGeoIP.so:net/GeoIP
+HTTP_GEOIP_VARS= DSO_BASEMODS+=http_geoip_module
+HTTP_GZIP_STATIC_CONFIGURE_ON= --with-http_gzip_static_module
+HTTP_GUNZIP_FILTER_CONFIGURE_ON=--with-http_gunzip_module
+HTTP_IMAGE_FILTER_LIB_DEPENDS= libgd.so:graphics/gd
+HTTP_IMAGE_FILTER_VARS= DSO_BASEMODS+=http_image_filter_module
+HTTP_MP4_CONFIGURE_ARGS= --with-http_mp4_module
+HTTP_PERL_CATEGORIES= perl5
+HTTP_PERL_USES= perl5
+HTTP_PERL_VARS= DSO_BASEMODS+=http_perl_module
+HTTP_RANDOM_INDEX_CONFIGURE_ON= --with-http_random_index_module
+HTTP_REALIP_CONFIGURE_ON= --with-http_realip_module
+HTTP_REWRITE_LIB_DEPENDS= libpcre.so:devel/pcre
+HTTP_REWRITE_CONFIGURE_ON= --with-pcre
+HTTP_REWRITE_CONFIGURE_OFF= --without-http_rewrite_module
+HTTP_SECURE_LINK_CONFIGURE_ON= --with-http_secure_link_module
+HTTP_SLICE_CONFIGURE_ON= --with-http_slice_module
+HTTP_SSL_CONFIGURE_ON= --with-http_ssl_module
+HTTP_SSL_USES= ssl
+HTTP_STATUS_CONFIGURE_ON= --with-http_stub_status_module
+HTTP_SUB_CONFIGURE_ON= --with-http_sub_module
+HTTP_XSLT_USE= GNOME=libxml2,libxslt
+HTTP_XSLT_VARS= DSO_BASEMODS+=http_xslt_module
+HTTPV2_IMPLIES= HTTP_SSL
+HTTPV2_CONFIGURE_ON= --with-http_v2_module
+MAIL_VARS= DSO_BASEMODS+=mail
+MAIL_IMAP_CONFIGURE_OFF= --without-mail_imap_module
+MAIL_POP3_CONFIGURE_OFF= --without-mail_pop3_module
+MAIL_SMTP_CONFIGURE_OFF= --without-mail_smtp_module
+MAIL_SSL_USES= ssl
+MAIL_SSL_CONFIGURE_ON= --with-mail_ssl_module
+STREAM_VARS= DSO_BASEMODS+=stream
+STREAM_SSL_IMPLIES= HTTP_SSL
+STREAM_SSL_CONFIGURE_ON= --with-stream_ssl_module
+STREAM_SSL_PREREAD_OFF= --without-stream_ssl_preread_module
+
+### External modules
+.include "Makefile.extmod"
+
+.include <bsd.port.pre.mk>
-.if ${PORT_OPTIONS:MHTTP_AUTH_PAM}
-GIT_HTTP_AUTH_PAM_VERSION= 1.5.1
-GH_ACCOUNT+= sto:auth_pam
-GH_PROJECT+= ngx_http_auth_pam_module:auth_pam
-GH_TAGNAME+= v${GIT_HTTP_AUTH_PAM_VERSION}:auth_pam
.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_auth_pam}
+_addbasemod= =dynamic
+_addextmod= add-dynamic-module
.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_pam}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_AUTH_REQ}
-CONFIGURE_ARGS+=--with-http_auth_request_module
+_addextmod= add-module
.endif
-.if empty(PORT_OPTIONS:MHTTP_CACHE)
-CONFIGURE_ARGS+=--without-http-cache
-.endif
-
-.if ${PORT_OPTIONS:MAJP}
-NGINX_AJP_VERSION= bf6cd93
-GH_ACCOUNT+= yaoweibin:ajp
-GH_PROJECT+= nginx_ajp_module:ajp
-GH_TAGNAME+= ${NGINX_AJP_VERSION}:ajp
-CONFIGURE_ARGS+=--add-module=${WRKSRC_ajp}
-.endif
-
-.if ${PORT_OPTIONS:MAWS_AUTH}
-NGINX_AWS_AUTH_VERSION= 1e62670
-GH_ACCOUNT+= anomalizer:aws_auth
-GH_PROJECT+= ngx_aws_auth:aws_auth
-GH_TAGNAME+= ${NGINX_AWS_AUTH_VERSION}:aws_auth
-CONFIGURE_ARGS+=--add-module=${WRKSRC_aws_auth}
-.endif
+.for mod in ${DSO_BASEMODS}
+CONFIGURE_ARGS+= --with-${mod}${_addbasemod}
+.endfor
-.if ${PORT_OPTIONS:MCACHE_PURGE}
-NGINX_CACHE_PURGE_VERSION= 2.3
-MASTER_SITES+= http://labs.frickle.com/files/:cache_purge
-DISTFILES+= ngx_cache_purge-${NGINX_CACHE_PURGE_VERSION}.tar.gz:cache_purge
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/ngx_cache_purge-${NGINX_CACHE_PURGE_VERSION}
-.endif
+.for mod in ${DSO_EXTMODS}
+CONFIGURE_ARGS+= --${_addextmod}=${WRKSRC_${mod}}${${mod:tu}_SUBDIR}
+.endfor
+# For non-GitHub hosted modules
+.for moddir in ${DSO_EXTDIRS}
+CONFIGURE_ARGS+= --${_addextmod}=${WRKDIR}/${moddir}
+.endfor
-.if ${PORT_OPTIONS:MCLOJURE}
-CATEGORIES+= java
-USE_JAVA= yes
-JAVA_OS= native
-JAVA_VERSION= 1.8
-JAVA_VENDOR= openjdk
-JAVA_BUILD= yes
-JAVA_RUN= yes
-NGINX_CLOJURE_VERSION= 0.4.5
-GH_ACCOUNT+= nginx-clojure:clojure
-GH_PROJECT+= nginx-clojure:clojure
-GH_TAGNAME+= v${NGINX_CLOJURE_VERSION}:clojure
-CONFIGURE_ENV+= "JNI_INCS=-I${LOCALBASE}/openjdk8/include -I${LOCALBASE}/openjdk8/include/freebsd"
-CONFIGURE_ARGS+=--add-module=${WRKSRC_clojure}/src/c
+.if empty(PORT_OPTIONS:MHTTP) && empty(PORT_OPTIONS:MMAIL)
+IGNORE= requires at least HTTP or MAIL to \
+ be defined. Please do 'make config' again
.endif
-.if ${PORT_OPTIONS:MCT}
-GIT_CT_VERSION= 1.3.2
-GH_ACCOUNT+= grahamedgecombe:ct
-GH_PROJECT+= nginx-ct:ct
-GH_TAGNAME+= v${GIT_CT_VERSION}:ct
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_ct}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_ct}
-.endif
-NGINX_OPENSSL= yes
-USE_HTTP_SSL= yes
-.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100085 && ${SSL_DEFAULT} == base
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100085 && ${SSL_DEFAULT} == base && ${PORT_OPTIONS:MCT}
IGNORE= CT option requires OpenSSL 1.0.2, add DEFAULT_VERSIONS+=ssl=openssl to /etc/make.conf
.endif
-.endif
-
-.if ${PORT_OPTIONS:MECHO}
-NGINX_ECHO_VERSION= 46334b3
-GH_ACCOUNT+= openresty:echo
-GH_PROJECT+= echo-nginx-module:echo
-GH_TAGNAME+= ${NGINX_ECHO_VERSION}:echo
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_echo}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_echo}
-.endif
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_echo_request_info.c
-.endif
-
-.if ${PORT_OPTIONS:MFASTDFS}
-NGINX_FASTDFS_VERSION= 85347be
-GH_ACCOUNT+= happyfish100:fastdfs
-GH_PROJECT+= fastdfs-nginx-module:fastdfs
-GH_TAGNAME+= ${NGINX_FASTDFS_VERSION}:fastdfs
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-fastdfs-src-config \
- ${PATCHDIR}/extra-patch-fastdfs-src-mod_fastdfs.conf
-BUILD_DEPENDS+= ${LOCALBASE}/include/fastcommon/logger.h:devel/libfastcommon \
- ${LOCALBASE}/include/fastdfs/fdfs_client.h:ftp/fastdfs
-LIB_DEPENDS+= libfastcommon.so:devel/libfastcommon \
- libfdfsclient.so:ftp/fastdfs
-CONFIGURE_ARGS+=--add-module=${WRKSRC_fastdfs}/src \
- --with-cc-opt="-I ${LOCALBASE}/include/fastdfs \
- -I ${LOCALBASE}/include/fastcommon"
-.endif
-
-.if ${PORT_OPTIONS:MHEADERS_MORE}
-NGINX_HEADERS_MORE_VERSION= 55fbdab
-GH_ACCOUNT+= openresty:headers_more
-GH_PROJECT+= headers-more-nginx-module:headers_more
-GH_TAGNAME+= ${NGINX_HEADERS_MORE_VERSION}:headers_more
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_headers_more}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_headers_more}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_DAV} || defined(USE_HTTP_DAV)
-CONFIGURE_ARGS+=--with-http_dav_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_DAV_EXT}
-USE_HTTP_DAV= yes
-LIB_DEPENDS+= libexpat.so:textproc/expat2
-NGINX_DAV_EXT_VERSION= 0.1.0
-GH_ACCOUNT+= arut:dav_ext
-GH_PROJECT+= nginx-dav-ext-module:dav_ext
-GH_TAGNAME+= v${NGINX_DAV_EXT_VERSION}:dav_ext
-CONFIGURE_ARGS+=--add-module=${WRKSRC_dav_ext}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_EVAL}
-NGINX_EVAL_VERSION= 582bd25
-GH_ACCOUNT+= openresty:eval
-GH_PROJECT+= nginx-eval-module:eval
-GH_TAGNAME+= ${NGINX_EVAL_VERSION}:eval
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_eval}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_eval}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_FANCYINDEX}
-NGINX_FANCYINDEX_VERSION= 0.4.2
-GH_ACCOUNT+= aperezdc:fancyindex
-GH_PROJECT+= ngx-fancyindex:fancyindex
-GH_TAGNAME+= v${NGINX_FANCYINDEX_VERSION}:fancyindex
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_fancyindex}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_fancyindex}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_FOOTER}
-NGINX_FOOTER_VERSION= 1.2.2
-GH_ACCOUNT+= alibaba:footer
-GH_PROJECT+= nginx-http-footer-filter:footer
-GH_TAGNAME+= ${NGINX_FOOTER_VERSION}:footer
-CONFIGURE_ARGS+=--add-module=${WRKSRC_footer}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_GEOIP2}
-# WWW: https://github.com/leev/ngx_http_geoip2_module
-NGINX_HTTP_GEOIP2_VERSION= 2.0
-GH_ACCOUNT+= leev:geoip2
-GH_PROJECT+= ngx_http_geoip2_module:geoip2
-GH_TAGNAME+= ${NGINX_HTTP_GEOIP2_VERSION}:geoip2
-CFLAGS+= "-I${LOCALBASE}/include"
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_geoip2}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_geoip2}
-.endif
-LIB_DEPENDS+= libmaxminddb.so:net/libmaxminddb
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_FLV}
-CONFIGURE_ARGS+=--with-http_flv_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_JSON_STATUS}
-NGINX_JSON_STATUS_VERSION= 1d2f303
-GH_ACCOUNT+= nginx-modules:json_status
-GH_PROJECT+= ngx_http_json_status_module:json_status
-GH_TAGNAME+= ${NGINX_JSON_STATUS_VERSION}:json_status
-CONFIGURE_ARGS+=--add-module=${WRKSRC_json_status}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_GEOIP}
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-http_geoip_module=dynamic
-.else
-CONFIGURE_ARGS+=--with-http_geoip_module
-.endif
-LIB_DEPENDS+= libGeoIP.so:net/GeoIP
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_GZIP_STATIC}
-CONFIGURE_ARGS+=--with-http_gzip_static_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_GUNZIP_FILTER}
-CONFIGURE_ARGS+=--with-http_gunzip_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_IMAGE_FILTER}
-LIB_DEPENDS+= libgd.so:graphics/gd
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-http_image_filter_module=dynamic
-.else
-CONFIGURE_ARGS+=--with-http_image_filter_module
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_MP4}
-CONFIGURE_ARGS+=--with-http_mp4_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_MOGILEFS}
-NGINX_MOGILEFS_VERSION= 1.0.4
-MASTER_SITES+= http://www.grid.net.ru/nginx/download/:mogilefs
-DISTFILES+= nginx_mogilefs_module-${NGINX_MOGILEFS_VERSION}.tar.gz:mogilefs
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx_mogilefs_module-${NGINX_MOGILEFS_VERSION}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_mogilefs_module.c
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_MP4_H264}
-NGINX_H264_VERSION= 2.2.7
-MASTER_SITES+= http://h264.code-shop.com/download/:mp4streaming
-DISTFILES+= nginx_mod_h264_streaming-${NGINX_H264_VERSION}.tar.gz:mp4streaming
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx_mod_h264_streaming-${NGINX_H264_VERSION}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_streaming_module.c
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_NOTICE}
-GIT_NOTICE_VERSION= 3c95966
-GH_ACCOUNT+= kr:notice
-GH_PROJECT+= nginx-notice:notice
-GH_TAGNAME+= ${GIT_NOTICE_VERSION}:notice
-CONFIGURE_ARGS+=--add-module=${WRKSRC_notice}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_notice_module.c
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_PERL}
-CATEGORIES+= perl5
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-http_perl_module=dynamic
-.else
-CONFIGURE_ARGS+=--with-http_perl_module
-.endif
-USES+= perl5
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_PUSH}
-GIT_PUSH_VERSION= 1.1.14
-GH_ACCOUNT+= slact:push
-GH_PROJECT+= nchan:push
-GH_TAGNAME+= v${GIT_PUSH_VERSION}:push
-CONFIGURE_ARGS+=--add-module=${WRKSRC_push}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_PUSH_STREAM}
-NGINX_PUSH_STREAM_VERSION= 0.5.4
-GH_ACCOUNT+= wandenberg:pushstream
-GH_PROJECT+= nginx-push-stream-module:pushstream
-GH_TAGNAME+= ${NGINX_PUSH_STREAM_VERSION}:pushstream
-CONFIGURE_ARGS+=--add-module=${WRKSRC_pushstream}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_RANDOM_INDEX}
-CONFIGURE_ARGS+=--with-http_random_index_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_REALIP}
-CONFIGURE_ARGS+=--with-http_realip_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_REDIS}
-NGINX_REDIS_VERSION= 0.3.8
-MASTER_SITES+= LOCAL/osa:redis
-DISTFILES+= ngx_http_redis-${NGINX_REDIS_VERSION}.tar.gz:redis
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKDIR}/ngx_http_redis-${NGINX_REDIS_VERSION}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/ngx_http_redis-${NGINX_REDIS_VERSION}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_RESPONSE}
-NGINX_RESPONSE_VERSION= 0.3
-MASTER_SITES+= http://catap.ru/downloads/nginx/:response
-DISTFILES+= ngx_http_response-${NGINX_RESPONSE_VERSION}.tar.gz:response
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/ngx_http_response-${NGINX_RESPONSE_VERSION}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_SUBS_FILTER}
-NGINX_HTTP_SUBS_FILTER_VERSION= 0.6.4
-GH_ACCOUNT+= yaoweibin:subs_filter
-GH_PROJECT+= ngx_http_substitutions_filter_module:subs_filter
-GH_TAGNAME+= v${NGINX_HTTP_SUBS_FILTER_VERSION}:subs_filter
-CONFIGURE_ARGS+=--add-module=${WRKSRC_subs_filter}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_TARANTOOL}
-LIB_DEPENDS+= libmsgpuck.so:devel/msgpuck \
- libyajl.so:devel/yajl
-GH_ACCOUNT+= tarantool:nginx_tarantool
-GH_PROJECT+= nginx_upstream_module:nginx_tarantool
-GH_TAGNAME+= 1278ee5:nginx_tarantool
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_nginx_tarantool}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_nginx_tarantool}
-.endif
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_tarantool-config \
- ${PATCHDIR}/extra-patch-ngx_http_tarantool-src-tp_transcode.c
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_SECURE_LINK}
-CONFIGURE_ARGS+=--with-http_secure_link_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_SLICE}
-CONFIGURE_ARGS+=--with-http_slice_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_STATUS}
-CONFIGURE_ARGS+=--with-http_stub_status_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_SUB}
-CONFIGURE_ARGS+=--with-http_sub_module
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_UPLOAD}
-GIT_UPLOAD_VERSION= 72ec037
-GH_ACCOUNT+= Austinb:upload
-GH_PROJECT+= nginx-upload-module:upload
-GH_TAGNAME+= ${GIT_UPLOAD_VERSION}:upload
-CONFIGURE_ARGS+=--add-module=${WRKSRC_upload}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_UPLOAD_PROGRESS}
-NGINX_UPLOADPROGRESS_VERSION= afb2d31
-GH_ACCOUNT+= masterzen:uploadprogress
-GH_PROJECT+= nginx-upload-progress-module:uploadprogress
-GH_TAGNAME+= ${NGINX_UPLOADPROGRESS_VERSION}:uploadprogress
-CONFIGURE_ARGS+=--add-module=${WRKSRC_uploadprogress}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_UPSTREAM_CHECK}
-# WWW: https://github.com/yaoweibin/nginx_upstream_check_module
-NGINX_UPSTREAM_CHECK_VERSION= 9aecf15
-GH_ACCOUNT+= yaoweibin:upstreamcheck
-GH_PROJECT+= nginx_upstream_check_module:upstreamcheck
-GH_TAGNAME+= ${NGINX_UPSTREAM_CHECK_VERSION}:upstreamcheck
-CONFIGURE_ARGS+=--add-module=${WRKSRC_upstreamcheck}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c \
- ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c \
- ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c \
- ${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.c \
- ${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.h
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_UPSTREAM_FAIR}
-NGINX_UPSTREAM_FAIR_VERSION= b5be36f
-GH_ACCOUNT+= cryptofuture:upstreamfair
-GH_PROJECT+= nginx-upstream-fair:upstreamfair
-GH_TAGNAME+= ${NGINX_UPSTREAM_FAIR_VERSION}:upstreamfair
-CONFIGURE_ARGS+=--add-module=${WRKSRC_upstreamfair}
-#.if ${PORT_OPTIONS:MHTTP_UPSTREAM_CHECK}
-#EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_upstream_fair_module.c
-#.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_UPSTREAM_STICKY}
-USE_HTTP_SSL= yes
-NGINX_UPSTREAM_STICKY_VERSION= 08a395c66e42
-MASTER_SITES+= https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/:upstreamsticky
-DISTFILES+= ${NGINX_UPSTREAM_STICKY_VERSION}.tar.gz:upstreamsticky
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx-goodies-nginx-sticky-module-ng-${NGINX_UPSTREAM_STICKY_VERSION}/
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_sticky_misc.c
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_VIDEO_THUMBEXTRACTOR}
-NGINX_VIDEO_THUMBEXTRACTOR_VERSION= 0.9.0
-LIB_DEPENDS+= libavformat.so:multimedia/ffmpeg \
- libavcodec.so:multimedia/ffmpeg \
- libavutil.so:multimedia/ffmpeg \
- libswscale.so:multimedia/ffmpeg
-USES+= jpeg
-GH_ACCOUNT+= wandenberg:vte
-GH_PROJECT+= nginx-video-thumbextractor-module:vte
-GH_TAGNAME+= ${NGINX_VIDEO_THUMBEXTRACTOR_VERSION}:vte
-CONFIGURE_ARGS+=--add-module=${WRKSRC_vte}
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_XSLT}
-USE_GNOME+= libxml2 libxslt
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-http_xslt_module=dynamic
-.else
-CONFIGURE_ARGS+=--with-http_xslt_module
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MHTTP_ZIP}
-NGINX_ZIP_VERSION= 74ef235
-GH_ACCOUNT+= anthonyryan1:mod_zip
-GH_PROJECT+= mod_zip:mod_zip
-GH_TAGNAME+= ${NGINX_ZIP_VERSION}:mod_zip
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/mod_zip-${NGINX_ZIP_VERSION}
-.endif
-
-.if ${PORT_OPTIONS:MDRIZZLE}
-LIB_DEPENDS+= libdrizzle.so:databases/libdrizzle
-CONFIGURE_ENV+= "LIBDRIZZLE_INC=${LOCALBASE}/include"
-CONFIGURE_ENV+= "LIBDRIZZLE_LIB=${LOCALBASE}/lib"
-NGINX_DRIZZLE_VERSION= 0.1.9
-GH_ACCOUNT+= openresty:drizzle
-GH_PROJECT+= drizzle-nginx-module:drizzle
-GH_TAGNAME+= v${NGINX_DRIZZLE_VERSION}:drizzle
-CONFIGURE_ARGS+=--add-module=${WRKSRC_drizzle}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-openresty-drizzle-nginx-module-config \
- ${PATCHDIR}/extra-patch-ngx_http_drizzle_upstream.c
-.endif
-
-.if ${PORT_OPTIONS:MDYNAMIC_UPSTREAM}
-NGINX_DYNAMIC_UPSTREAM_VERSION= 0.1.3
-GH_ACCOUNT+= cubicdaiya:dyn_upstream
-GH_PROJECT+= ngx_dynamic_upstream:dyn_upstream
-GH_TAGNAME+= v${NGINX_DYNAMIC_UPSTREAM_VERSION}:dyn_upstream
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_dyn_upstream}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_dyn_upstream}
-.endif
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_inet_slab.c
-.endif
-
-.if ${PORT_OPTIONS:MARRAYVAR} || ${PORT_OPTIONS:MENCRYPTSESSION} || ${PORT_OPTIONS:MFORMINPUT} || ${PORT_OPTIONS:MICONV} || ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MSET_MISC}
-NGINX_DEVEL_KIT_VERSION= 0.3.0
-GH_ACCOUNT+= simpl:devel_kit
-GH_PROJECT+= ngx_devel_kit:devel_kit
-GH_TAGNAME+= v${NGINX_DEVEL_KIT_VERSION}:devel_kit
-CONFIGURE_ARGS+=--add-module=${WRKSRC_devel_kit}
-.endif
-
-.if ${PORT_OPTIONS:MENCRYPTSESSION}
-NGINX_ENCRYPTSESSION_VERSION= 0.07
-GH_ACCOUNT+= openresty:encryptsession
-GH_PROJECT+= encrypted-session-nginx-module:encryptsession
-GH_TAGNAME+= v${NGINX_ENCRYPTSESSION_VERSION}:encryptsession
-CONFIGURE_ARGS+=--add-module=${WRKSRC_encryptsession}
-.endif
-
-.if ${PORT_OPTIONS:MGRIDFS}
-NGINX_GRIDFS_VERSION= 0.8
-MONGO_C_DRIVER_VERSION= 0.3.1
-GH_ACCOUNT+= mdirolf:gridfs mongodb:mongo_c
-GH_PROJECT+= nginx-gridfs:gridfs mongo-c-driver:mongo_c
-GH_TAGNAME+= v${NGINX_GRIDFS_VERSION}:gridfs v${MONGO_C_DRIVER_VERSION}:mongo_c
-CONFIGURE_ARGS+=--add-module=${WRKSRC_gridfs}
-.endif
-
-.if ${PORT_OPTIONS:MLET}
-NGINX_LET_VERSION= 0.0.4
-GH_ACCOUNT+= arut:let
-GH_PROJECT+= nginx-let-module:let
-GH_TAGNAME+= v${NGINX_LET_VERSION}:let
-CONFIGURE_ARGS+=--add-module=${WRKSRC_let}
-.endif
-
-.if ${PORT_OPTIONS:MLUA}
-LIB_DEPENDS+= libluajit-5.1.so:lang/luajit
-CONFIGURE_ENV+= "LUAJIT_INC=${LOCALBASE}/include/luajit-2.0"
-CONFIGURE_ENV+= "LUAJIT_LIB=${LOCALBASE}/lib"
-NGINX_LUA_VERSION= 0.10.11
-GH_ACCOUNT+= openresty:lua
-GH_PROJECT+= lua-nginx-module:lua
-GH_TAGNAME+= v${NGINX_LUA_VERSION}:lua
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_lua}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_lua}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MMEMC}
-NGINX_MEMC_VERSION= 0.18
-GH_ACCOUNT+= openresty:memc
-GH_PROJECT+= memc-nginx-module:memc
-GH_TAGNAME+= v${NGINX_MEMC_VERSION}:memc
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_memc}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_memc}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MMODSECURITY}
-NGINX_MODSECURITY_VERSION= 2.9.1
-LIB_DEPENDS+= libapr-1.so:devel/apr1 \
- libcurl.so:ftp/curl \
- libluajit-5.1.so:lang/luajit \
- libpcre.so:devel/pcre \
- libyajl.so:devel/yajl
-USE_GNOME+= libxml2
-USES+= apache:2.2+ pkgconfig shebangfix
-MASTER_SITES+= http://www.modsecurity.org/tarball/${NGINX_MODSECURITY_VERSION:S/RC/rc/}/:modsecurity
-DISTFILES+= modsecurity-${NGINX_MODSECURITY_VERSION}.tar.gz:modsecurity
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/modsecurity-${NGINX_MODSECURITY_VERSION}/nginx/modsecurity
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-nginx-modsecurity-configure \
- ${PATCHDIR}/extra-patch-ngx_http_modsecurity.c
-.endif
-
-.if ${PORT_OPTIONS:MMODSECURITY3}
-LIB_DEPENDS+= libmodsecurity.so:www/mod_security3
-GH_TUPLE+= SpiderLabs:ModSecurity-nginx:c0ae166:modsec
-CONFIGURE_ARGS+=--add-module=${WRKSRC_modsec}
-.endif
-
-.if ${PORT_OPTIONS:MNAXSI}
-NGINX_NAXSI_VERSION= 0.55.3
-GH_ACCOUNT+= nbs-system:naxsi
-GH_PROJECT+= naxsi:naxsi
-GH_TAGNAME+= ${NGINX_NAXSI_VERSION}:naxsi
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/naxsi-${NGINX_NAXSI_VERSION}/naxsi_src
-.endif
.if ${PORT_OPTIONS:MHTTP_REWRITE} || defined(USE_HTTP_REWRITE)
-LIB_DEPENDS+= libpcre.so:devel/pcre
-CONFIGURE_ARGS+=--with-pcre
-.else
PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-nopcre
-CONFIGURE_ARGS+=--without-http_rewrite_module \
- --without-pcre
.endif
-.if ${PORT_OPTIONS:MPASSENGER}
-PASSENGER_VERSION= 5.2.1
-MASTER_SITES+= http://s3.amazonaws.com/phusion-passenger/releases/:passenger
-DISTFILES+= passenger-${PASSENGER_VERSION}.tar.gz:passenger
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKDIR}/passenger-${PASSENGER_VERSION}/src/nginx_module
-.else
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/passenger-${PASSENGER_VERSION}/src/nginx_module
-.endif
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-passenger-build-nginx.rb
-.if empty(PORT_OPTIONS:MDEBUG)
+.if ${PORT_OPTIONS:MPASSENGER} && empty(PORT_OPTIONS:MDEBUG)
CONFIGURE_ENV+= OPTIMIZE="yes"
CFLAGS+= -DNDEBUG
.endif
-.endif
-
-.if ${PORT_OPTIONS:MPOSTGRES}
-USES+= pgsql
-NGINX_POSTGRES_VERSION= 1.0rc7
-GH_ACCOUNT+= FRiCKLE:postgres
-GH_PROJECT+= ngx_postgres:postgres
-GH_TAGNAME+= ${NGINX_POSTGRES_VERSION}:postgres
-CONFIGURE_ARGS+=--add-module=${WRKSRC_postgres}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_postgres-config \
- ${PATCHDIR}/extra-patch-ngx_postgres_module.c
-.endif
-
-.if ${PORT_OPTIONS:MRDS_CSV}
-NGINX_RDS_CSV_VERSION= 0.08
-GH_ACCOUNT+= openresty:rdscsv
-GH_PROJECT+= rds-csv-nginx-module:rdscsv
-GH_TAGNAME+= v${NGINX_RDS_CSV_VERSION}:rdscsv
-CONFIGURE_ARGS+=--add-module=${WRKSRC_rdscsv}
-.endif
-
-.if ${PORT_OPTIONS:MRDS_JSON}
-NGINX_RDS_JSON_VERSION= 0.14
-GH_ACCOUNT+= openresty:rdsjson
-GH_PROJECT+= rds-json-nginx-module:rdsjson
-GH_TAGNAME+= v${NGINX_RDS_JSON_VERSION}:rdsjson
-CONFIGURE_ARGS+=--add-module=${WRKSRC_rdsjson}
-.endif
-
-.if ${PORT_OPTIONS:MREDIS2}
-NGINX_REDIS2_VERSION= 0.14
-GH_ACCOUNT+= openresty:redis2
-GH_PROJECT+= redis2-nginx-module:redis2
-GH_TAGNAME+= v${NGINX_REDIS2_VERSION}:redis2
-CONFIGURE_ARGS+=--add-module=${WRKSRC_redis2}
-.endif
-
-.if ${PORT_OPTIONS:MRTMP}
-NGINX_RTMP_VERSION= 1.2.1
-GH_ACCOUNT+= arut:rtmp
-GH_PROJECT+= nginx-rtmp-module:rtmp
-GH_TAGNAME+= v${NGINX_RTMP_VERSION}:rtmp
-CONFIGURE_ARGS+=--add-module=${WRKSRC_rtmp}
-.endif
-
-.if ${PORT_OPTIONS:MSET_MISC}
-NGINX_SET_MISC_VERSION= cda7e50
-GH_ACCOUNT+= openresty:setmisc
-GH_PROJECT+= set-misc-nginx-module:setmisc
-GH_TAGNAME+= ${NGINX_SET_MISC_VERSION}:setmisc
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_setmisc}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_setmisc}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MSFLOW}
-NGINX_SFLOW_VERSION= 543c72a
-GH_ACCOUNT+= sflow:sflow
-GH_PROJECT+= nginx-sflow-module:sflow
-GH_TAGNAME+= ${NGINX_SFLOW_VERSION}:sflow
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_sflow_config.c \
- ${PATCHDIR}/extra-patch-ngx_http_sflow_config.h \
- ${PATCHDIR}/extra-patch-ngx_http_sflow_module.c
-.endif
-
-.if ${PORT_OPTIONS:MSHIBBOLETH}
-GIT_SHIBBOLETH_VERSION= f07bf3c
-GH_ACCOUNT+= nginx-shib:shib
-GH_PROJECT+= nginx-http-shibboleth:shib
-GH_TAGNAME+= ${GIT_SHIBBOLETH_VERSION}:shib
-CONFIGURE_ARGS+=--add-module=${WRKSRC_shib}
-.endif
-
-.if ${PORT_OPTIONS:MSLOWFS_CACHE}
-NGINX_SLOWFS_CACHE_VERSION= 1.10
-MASTER_SITES+= http://labs.frickle.com/files/:slowfs_cache
-DISTFILES+= ngx_slowfs_cache-${NGINX_SLOWFS_CACHE_VERSION}.tar.gz:slowfs_cache
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/ngx_slowfs_cache-${NGINX_SLOWFS_CACHE_VERSION}
-.endif
-
-.if ${PORT_OPTIONS:MSMALL_LIGHT}
-NGINX_SMALL_LIGHT_VERSION= 0.9.2
-LIB_DEPENDS+= ${IMAGEMAGICK_LIB_DEPENDS} \
- libpcre.so:devel/pcre
-GH_ACCOUNT+= cubicdaiya:small_light
-GH_PROJECT+= ngx_small_light:small_light
-GH_TAGNAME+= v${NGINX_SMALL_LIGHT_VERSION}:small_light
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_small_light}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_small_light}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MSRCACHE}
-NGINX_SRCACHE_VERSION= 0.31
-GH_ACCOUNT+= openresty:srcache
-GH_PROJECT+= srcache-nginx-module:srcache
-GH_TAGNAME+= v${NGINX_SRCACHE_VERSION}:srcache
-CONFIGURE_ARGS+=--add-module=${WRKSRC_srcache}
-.endif
-
-.if ${PORT_OPTIONS:MXSS}
-NGINX_XSS_VERSION= 0.05
-GH_ACCOUNT+= openresty:xss
-GH_PROJECT+= xss-nginx-module:xss
-GH_TAGNAME+= v${NGINX_XSS_VERSION}:xss
-CONFIGURE_ARGS+=--add-module=${WRKSRC_xss}
-.endif
-
-.if ${PORT_OPTIONS:MHTTPV2}
-NGINX_OPENSSL= yes
-USE_HTTP_SSL= yes
-CONFIGURE_ARGS+=--with-http_v2_module
-.endif
-
-.if ${PORT_OPTIONS:MNJS}
-GH_ACCOUNT+= nginx:njs
-GH_PROJECT+= njs:njs
-GH_TAGNAME+= 4ed8a0b:njs
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_njs}/nginx
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_njs}/nginx
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MSTREAM}
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-stream=dynamic
-.else
-CONFIGURE_ARGS+=--with-stream
-.endif
-.if ${PORT_OPTIONS:MSTREAM_SSL}
-NGINX_OPENSSL= yes
-USE_HTTP_SSL= yes
-CONFIGURE_ARGS+=--with-stream_ssl_module
-.if ${PORT_OPTIONS:MSTREAM_SSL_PREREAD}
-CONFIGURE_ARGS+=--with-stream_ssl_preread_module
-.endif
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MTHREADS}
-CONFIGURE_ARGS+=--with-threads
-.endif
-
-.if ${PORT_OPTIONS:MWWW}
-PLIST_SUB+= WWWDATA=""
-.else
-PLIST_SUB+= WWWDATA="@comment "
-.endif
-
-.else
-CONFIGURE_ARGS+=--without-http
-PLIST_SUB+= WWWDATA="@comment "
-.endif # WITH_HTTP
-
-.if ${PORT_OPTIONS:MMAIL}
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--with-mail=dynamic
-.else
-CONFIGURE_ARGS+=--with-mail
-.endif
-.if empty(PORT_OPTIONS:MMAIL_IMAP)
-CONFIGURE_ARGS+=--without-mail_imap_module
-.endif
-.if empty(PORT_OPTIONS:MMAIL_POP3)
-CONFIGURE_ARGS+=--without-mail_pop3_module
-.endif
-.if empty(PORT_OPTIONS:MMAIL_SMTP)
-CONFIGURE_ARGS+=--without-mail_smtp_module
-.endif
-.if ${PORT_OPTIONS:MMAIL_SSL}
-NGINX_OPENSSL= yes
-CONFIGURE_ARGS+=--with-mail_ssl_module
-.endif
-.endif # WITH_MAIL
-
-.if ${PORT_OPTIONS:MHTTP_SSL} || defined(USE_HTTP_SSL)
-NGINX_OPENSSL= yes
-CONFIGURE_ARGS+=--with-http_ssl_module
-.endif
-
-.if ${PORT_OPTIONS:MARRAYVAR}
-NGINX_ARRAYVAR_VERSION= 0.05
-GH_ACCOUNT+= openresty:arrayvar
-GH_PROJECT+= array-var-nginx-module:arrayvar
-GH_TAGNAME+= v${NGINX_ARRAYVAR_VERSION}:arrayvar
-CONFIGURE_ARGS+=--add-module=${WRKSRC_arrayvar}
-.endif
-
-.if ${PORT_OPTIONS:MBROTLI}
-NGINX_BROTLI_VERSION= 8cd9dd5
-LIB_DEPENDS+= libbrotlicommon.so:archivers/brotli
-GH_ACCOUNT+= eustas:brotli
-GH_PROJECT+= ngx_brotli:brotli
-GH_TAGNAME+= ${NGINX_BROTLI_VERSION}:brotli
-.if ${PORT_OPTIONS:MDSO}
-CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_brotli}
-.else
-CONFIGURE_ARGS+=--add-module=${WRKSRC_brotli}
-.endif
-.endif
-
-.if ${PORT_OPTIONS:MFORMINPUT}
-NGINX_FORMINPUT_VERSION= 0.12
-GH_ACCOUNT+= calio:forminput
-GH_PROJECT+= form-input-nginx-module:forminput
-GH_TAGNAME+= v${NGINX_FORMINPUT_VERSION}:forminput
-CONFIGURE_ARGS+=--add-module=${WRKSRC_forminput}
-.endif
-
-.if ${PORT_OPTIONS:MICONV}
-USES+= iconv
-NGINX_ICONV_VERSION= 0.14
-GH_ACCOUNT+= calio:iconv
-GH_PROJECT+= iconv-nginx-module:iconv
-GH_TAGNAME+= v${NGINX_ICONV_VERSION}:iconv
-CONFIGURE_ARGS+=--add-module=${WRKSRC_iconv}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-calio-iconv-nginx-module-config
-.endif
-
-PLIST_SUB+= NGINX_TMPDIR=${NGINX_TMPDIR} NGINX_LOGDIR=${NGINX_LOGDIR} WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
-
-USERS?= ${WWWOWN}
-GROUPS?=${WWWGRP}
-
-.if defined(NGINX_OPENSSL)
-USES+= ssl
-.endif
pre-everything::
@${ECHO_MSG}
@@ -1184,49 +224,55 @@ pre-everything::
.endif
@${ECHO_MSG}
-post-extract:
-.if ${PORT_OPTIONS:MGRIDFS}
+post-extract-GRIDFS-on:
@${RMDIR} ${WRKSRC_gridfs}/mongo-c-driver/
@${MV} ${WRKSRC_mongo_c} ${WRKSRC_gridfs}/mongo-c-driver
-.endif
post-patch:
@${REINPLACE_CMD} 's!%%HTTP_PORT%%!${HTTP_PORT}!; \
s!%%PREFIX%%!${PREFIX}!; \
s!%%NGINX_ERRORLOG%%!${NGINX_ERRORLOG}!' \
${WRKSRC}/conf/nginx.conf
-.if ${PORT_OPTIONS:MHTTP_AUTH_KRB5}
+
+post-patch-BROTLI-on:
+ @${REINPLACE_CMD} -E 's!^brotli=.*!brotli="${LOCALBASE}"!' ${WRKSRC_brotli}/config
+
+post-patch-DRIZZLE-on:
+ @${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_drizzle}/config
+
+post-patch-FASTDFS-on:
@${REINPLACE_CMD} \
- 's!%%GSSAPILIBS%%!${GSSAPILIBS}!' \
- ${WRKSRC_auth_krb5}/config
-.endif
+ 's!%%PREFIX%%!${PREFIX}!g;s!%%LOCALBASE%%!${LOCALBASE}!g' \
+ ${WRKSRC_fastdfs}/src/config
+
+# Respect CFLAGS by remove needless --std=c99 flag
+post-patch-GRIDFS-on:
+ @${REINPLACE_CMD} 's!--std=c99!-DMONGO_HAVE_STDINT!' ${WRKSRC_gridfs}/config
+
+post-patch-HTTP_AUTH_KRB5-on:
+ @${REINPLACE_CMD} 's!%%GSSAPILIBS%%!${GSSAPILIBS}!' ${WRKSRC_auth_krb5}/config
+
+post-patch-HTTP_TARANTOOL-on:
+ @${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_nginx_tarantool}/config
+
# linker error acquire if --std=c99 defined, add "static" to inline function
-.if ${PORT_OPTIONS:MHTTP_ZIP}
+post-patch-HTTP_ZIP-on:
@${REINPLACE_CMD} \
's!^inline!static inline!' \
- ${WRKDIR}/mod_zip-${NGINX_ZIP_VERSION}/ngx_http_zip_parsers.*
-.endif
-.if ${PORT_OPTIONS:MDRIZZLE}
+ ${WRKSRC_mod_zip}/ngx_http_zip_parsers.*
+
+post-patch-ICONV-on:
+ @${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config
+
+post-patch-MODSECURITY-on:
@${REINPLACE_CMD} \
's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKSRC_drizzle}/config
-.endif
-.if ${PORT_OPTIONS:MFASTDFS}
- @${REINPLACE_CMD} \
- 's!%%PREFIX%%!${PREFIX}!g; \
- s!%%LOCALBASE%%!${LOCALBASE}!g' \
- ${WRKSRC_fastdfs}/src/config
-.endif
-# Respect CFLAGS by remove needless --std=c99 flag
-.if ${PORT_OPTIONS:MGRIDFS}
- @${REINPLACE_CMD} \
- 's!--std=c99!-DMONGO_HAVE_STDINT!' \
- ${WRKSRC_gridfs}/config
-.endif
-.if ${PORT_OPTIONS:MPASSENGER}
+ ${WRKSRC_MODSECURITY}/configure
+
+post-patch-PASSENGER-on:
@${REINPLACE_CMD} \
'177,179s!true!false!' \
- ${WRKDIR}/passenger-${PASSENGER_VERSION}/build/basics.rb
+ ${WRKSRC_PASSENGER}/build/basics.rb
@${REINPLACE_CMD} \
's!-I/usr/include/libev!!; \
s!-lev!!; \
@@ -1234,59 +280,31 @@ post-patch:
s!-I/usr/include/libeio!!; \
s!-leio!!; \
s!-Iext/libeio!!' \
- ${WRKDIR}/passenger-${PASSENGER_VERSION}/build/common_library.rb
-.endif
-.if ${PORT_OPTIONS:MPOSTGRES}
- @${REINPLACE_CMD} \
- 's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKSRC_postgres}/config
-.endif
-.if ${PORT_OPTIONS:MSFLOW}
- @${REINPLACE_CMD} \
- 's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKDIR}/nginx-sflow-module-${NGINX_SFLOW_VERSION}/ngx_http_sflow_config.h
-.endif
-.if ${PORT_OPTIONS:MICONV}
- @${REINPLACE_CMD} \
- 's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKSRC_iconv}/config
-.endif
-.if ${PORT_OPTIONS:MMODSECURITY}
- @${REINPLACE_CMD} \
- 's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKDIR}/modsecurity-${NGINX_MODSECURITY_VERSION}/configure
-.endif
-.if ${PORT_OPTIONS:MHTTP_TARANTOOL}
+ ${WRKSRC_PASSENGER}/build/common_library.rb
+
+post-patch-POSTGRES-on:
+ @${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_postgres}/config
+
+post-patch-SFLOW-on:
@${REINPLACE_CMD} \
's!%%PREFIX%%!${LOCALBASE}!g' \
- ${WRKSRC_nginx_tarantool}/config
-.endif
-.if ${PORT_OPTIONS:MBROTLI}
- @${REINPLACE_CMD} -E \
- 's!^brotli=.*!brotli="${LOCALBASE}"!' \
- ${WRKSRC_brotli}/config
-.endif
+ ${WRKSRC_sflow}/ngx_http_sflow_config.h
-pre-configure:
-.if ${PORT_OPTIONS:MMODSECURITY}
- ( cd ${WRKDIR}/modsecurity-${NGINX_MODSECURITY_VERSION} && \
+pre-configure-MODSECURITY-on:
+ ( cd ${WRKSRC_MODSECURITY} && \
CC="${CC}" ${CONFIGURE_CMD} --enable-standalone-module \
--with-pcre=${LOCALBASE} --with-yajl=${LOCALBASE} \
--with-curl=${LOCALBASE} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} )
-.endif
-.if ${PORT_OPTIONS:MSMALL_LIGHT}
+
+pre-configure-SMALL_LIGHT-on:
( cd ${WRKSRC_small_light} && ./setup )
-.endif
do-build:
@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD}
do-install:
${MKDIR} ${STAGEDIR}${ETCDIR}
-.if ${PORT_OPTIONS:MDSO}
- ${MKDIR} ${STAGEDIR}${MODULESDIR}
-.endif
${MKDIR} ${STAGEDIR}${NGINX_TMPDIR}
${MKDIR} ${STAGEDIR}${NGINX_LOGDIR}
${INSTALL_PROGRAM} ${WRKSRC}/objs/nginx ${STAGEDIR}${PREFIX}/sbin
@@ -1304,54 +322,36 @@ do-install:
${ECHO_CMD} "" >>${STAGEDIR}${PREFIX}/www/nginx-dist/EXAMPLE_DIRECTORY-DONT_ADD_OR_TOUCH_ANYTHING
.endif
-.if ${PORT_OPTIONS:MHTTP} && ${PORT_OPTIONS:MHTTP_PERL}
+do-install-HTTP_PERL-on:
${MKDIR} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/nginx
${INSTALL_PROGRAM} ${WRKSRC}/objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so \
${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/nginx
${INSTALL_DATA} ${WRKSRC}/objs/src/http/modules/perl/blib/lib/nginx.pm \
${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/
-.endif
-
-.if ${PORT_OPTIONS:MFASTDFS}
- ${MKDIR} ${STAGEDIR}${PREFIX}/etc/fdfs
- ${INSTALL_DATA} ${WRKSRC_fastdfs}/src/mod_fastdfs.conf ${STAGEDIR}${PREFIX}/etc/fdfs/mod_fastdfs.conf.sample
-.endif
# Install dynamic modules
-.if ${PORT_OPTIONS:MDSO}
+do-install-DSO-on:
+ ${MKDIR} ${STAGEDIR}${MODULESDIR}
(cd ${WRKSRC}/objs/ && ${FIND} . -name '*.so' -maxdepth 1 -type f \
-exec ${INSTALL_PROGRAM} {} ${STAGEDIR}${MODULESDIR} \;)
-.endif
-.if ${PORT_OPTIONS:MNAXSI}
+do-install-FASTDFS-on:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/fdfs
+ ${INSTALL_DATA} ${WRKSRC_fastdfs}/src/mod_fastdfs.conf ${STAGEDIR}${PREFIX}/etc/fdfs/mod_fastdfs.conf.sample
+
+do-install-NAXSI-on:
${INSTALL_DATA} \
- ${WRKDIR}/naxsi-${NGINX_NAXSI_VERSION}/naxsi_config/naxsi_core.rules \
+ ${WRKDIR}/naxsi-${NAXSI_NGINX_VER}/naxsi_config/naxsi_core.rules \
${STAGEDIR}${ETCDIR}
-.endif
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/share/vim/vimfiles
cd ${WRKSRC}/contrib/vim && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/vim/vimfiles
-.if ${PORT_OPTIONS:MHTTP} && ${PORT_OPTIONS:MHTTP_PERL}
- ${ECHO_CMD} ${SITE_ARCH_REL}/auto/nginx/nginx.so >> ${TMPPLIST}
- ${ECHO_CMD} ${SITE_ARCH_REL}/nginx.pm >> ${TMPPLIST}
-.endif
${INSTALL_MAN} ${WRKSRC}/objs/nginx.8 ${STAGEDIR}${MAN8PREFIX}/man/man8
+ ${CAT} ${WRKSRC}/conf/nginx.conf >> ${STAGEDIR}${ETCDIR}/nginx.conf-dist
-.if ${PORT_OPTIONS:MNAXSI}
- ${ECHO_CMD} etc/nginx/naxsi_core.rules >> ${TMPPLIST}
-.endif
-
-.if ${PORT_OPTIONS:MFASTDFS}
- ${ECHO_CMD} @sample etc/fdfs/mod_fastdfs.conf.sample >> ${TMPPLIST}
-.endif
-
-# Add dynamic modules to the plist
-.if ${PORT_OPTIONS:MDSO}
+post-install-DSO-on:
(cd ${STAGEDIR}${PREFIX} && ${FIND} ${MODULESDIR:S|${PREFIX}/||} \
! -type d >>${TMPPLIST})
-.endif
- ${CAT} ${WRKSRC}/conf/nginx.conf \
- >>${STAGEDIR}${ETCDIR}/nginx.conf-dist
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/www/nginx/Makefile.extmod b/www/nginx/Makefile.extmod
new file mode 100644
index 000000000000..cf951f7a5466
--- /dev/null
+++ b/www/nginx/Makefile.extmod
@@ -0,0 +1,291 @@
+# $FreeBSD$
+
+### External modules
+AJP_GH_TUPLE= yaoweibin:nginx_ajp_module:bf6cd93:ajp
+AJP_CONFIGURE_ON= --add-module=${WRKSRC_ajp}
+
+ARRAYVAR_IMPLIES= DEVEL_KIT
+ARRAYVAR_GH_TUPLE= openresty:array-var-nginx-module:v0.05:arrayvar
+ARRAYVAR_VARS= DSO_EXTMODS+=arrayvar
+
+AWS_AUTH_GH_TUPLE= anomalizer:ngx_aws_auth:1e62670:aws_auth
+AWS_AUTH_VARS= DSO_EXTMODS+=aws_auth
+
+BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli
+BROTLI_GH_TUPLE= eustas:ngx_brotli:8cd9dd5:brotli
+BROTLI_VARS= DSO_EXTMODS+=brotli
+
+CACHE_PURGE_MASTER_SITES= http://labs.frickle.com/files/:cache_purge
+CACHE_PURGE_DISTFILES= ngx_cache_purge-2.3.tar.gz:cache_purge
+CACHE_PURGE_CONFIGURE_ON= --add-module=${WRKDIR}/ngx_cache_purge-2.3
+
+CLOJURE_CATEGORIES+= java
+CLOJURE_USE= JAVA=yes JAVA_OS=native JAVA_VERSION=1.8 \
+ JAVA_VENDOR=openjdk JAVA_BUILD=yes JAVA_RUN=yes
+CLOJURE_GH_TUPLE= nginx-clojure:nginx-clojure:v0.4.5:clojure
+CLOJURE_CONFIGURE_ENV= "JNI_INCS=-I${LOCALBASE}/openjdk8/include -I${LOCALBASE}/openjdk8/include/freebsd"
+CLOJURE_VARS= DSO_EXTMODS+=clojure CLOJURE_SUBDIR=/src/c
+
+CT_IMPLIES= HTTP_SSL
+CT_GH_TUPLE= grahamedgecombe:nginx-ct:v1.3.2:ct
+CT_VARS= DSO_EXTMODS+=ct
+
+ECHO_GH_TUPLE= openresty:echo-nginx-module:46334b3:echo
+ECHO_VARS= DSO_EXTMODS+=echo
+ECHO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_echo_request_info.c
+
+DRIZZLE_LIB_DEPENDS= libdrizzle.so:databases/libdrizzle
+DRIZZLE_CONFIGURE_ENV= LIBDRIZZLE_INC=${LOCALBASE}/include \
+ LIBDRIZZLE_LIB=${LOCALBASE}/lib
+DRIZZLE_GH_TUPLE= openresty:drizzle-nginx-module:v0.1.9:drizzle
+DRIZZLE_CONFIGURE_ON= --add-module=${WRKSRC_drizzle}
+DRIZZLE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-openresty-drizzle-nginx-module-config \
+ ${PATCHDIR}/extra-patch-ngx_http_drizzle_upstream.c
+
+DYNAMIC_UPSTREAM_GH_TUPLE= cubicdaiya:ngx_dynamic_upstream:v0.1.3:dynamic_upstream
+DYNAMIC_UPSTREAM_VARS= DSO_EXTMODS+=dynamic_upstream
+DYNAMIC_UPSTREAM_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_inet_slab.c
+
+DEVEL_KIT_GH_TUPLE= simpl:ngx_devel_kit:v0.3.0:devel_kit
+DEVEL_KIT_VARS= DSO_EXTMODS+=devel_kit
+
+ENCRYPTSESSION_IMPLIES= DEVEL_KIT
+ENCRYPTSESSION_GH_TUPLE= openresty:encrypted-session-nginx-module:v0.07:encryptsession
+ENCRYPTSESSION_VARS= DSO_EXTMODS+=encryptsession
+
+FASTDFS_GH_TUPLE= happyfish100:fastdfs-nginx-module:85347be:fastdfs
+FASTDFS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-fastdfs-src-config \
+ ${PATCHDIR}/extra-patch-fastdfs-src-mod_fastdfs.conf
+FASTDFS_BUILD_DEPENDS= ${LOCALBASE}/include/fastcommon/logger.h:devel/libfastcommon \
+ ${LOCALBASE}/include/fastdfs/fdfs_client.h:ftp/fastdfs
+FASTDFS_LIB_DEPENDS= libfastcommon.so:devel/libfastcommon \
+ libfdfsclient.so:ftp/fastdfs
+FASTDFS_CONFIGURE_ON= --with-cc-opt="-I ${LOCALBASE}/include/fastdfs \
+ -I ${LOCALBASE}/include/fastcommon"
+FASTDFS_VARS= DSO_EXTMODS+=fastdfs FASTDFS_SUBDIR=/src
+
+FORMINPUT_IMPLIES= DEVEL_KIT
+FORMINPUT_GH_TUPLE= calio:form-input-nginx-module:v0.12:forminput
+FORMINPUT_VARS= DSO_EXTMODS+=forminput
+
+GRIDFS_GH_TUPLE= mdirolf:nginx-gridfs:v0.8:gridfs \
+ mongodb:mongo-c-driver:v0.3.1:mongo_c
+GRIDFS_CONFIGURE_ON= --add-module=${WRKSRC_gridfs}
+
+HEADERS_MORE_GH_TUPLE= openresty:headers-more-nginx-module:55fbdab:headers_more
+HEADERS_MORE_VARS= DSO_EXTMODS+=headers_more
+
+HTTP_ACCEPT_LANGUAGE_GH_TUPLE= giom:nginx_accept_language_module:2f69842:accept_language
+HTTP_ACCEPT_LANGUAGE_CONFIGURE_ON= --add-module=${WRKSRC_accept_language}
+
+HTTP_AUTH_DIGEST_GH_TUPLE= atomx:nginx-http-auth-digest:274490c:auth_digest
+HTTP_AUTH_DIGEST_VARS= DSO_EXTMODS+=auth_digest
+
+HTTP_AUTH_KRB5_GH_TUPLE= stnoonan:spnego-http-auth-nginx-module:7e028a5:auth_krb5
+HTTP_AUTH_KRB5_VARS= DSO_EXTMODS+=auth_krb5
+#HTTP_AUTH_KRB5_EXTRA_PATCHES=${PATCHDIR}/extra-patch-spnego-http-auth-nginx-module-config
+#OPTIONS_RADIO+= GSSAPI
+#OPTIONS_RADIO_GSSAPI+= GSSAPI_HEIMDAL GSSAPI_MIT
+#GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags
+#GSSAPI_MIT_USES= gssapi:mit
+
+HTTP_AUTH_LDAP_GH_TUPLE= kvspb:nginx-auth-ldap:42d195d:http_auth_ldap
+HTTP_AUTH_LDAP_VARS= DSO_EXTMODS+=http_auth_ldap
+HTTP_AUTH_LDAP_USE= openldap=yes
+
+HTTP_AUTH_PAM_GH_TUPLE= sto:ngx_http_auth_pam_module:v1.5.1:auth_pam
+HTTP_AUTH_PAM_VARS= DSO_EXTMODS+=auth_pam
+
+HTTP_DAV_EXT_IMPLIES= HTTP_DAV
+HTTP_DAV_EXT_LIB_DEPENDS= libexpat.so:textproc/expat2
+HTTP_DAV_EXT_GH_TUPLE= arut:nginx-dav-ext-module:v0.1.0:dav_ext
+HTTP_DAV_EXT_CONFIGURE_ON= --add-module=${WRKSRC_dav_ext}
+
+HTTP_EVAL_GH_TUPLE= openresty:nginx-eval-module:582bd25:eval
+HTTP_EVAL_VARS= DSO_EXTMODS+=eval
+
+HTTP_FANCYINDEX_GH_TUPLE= aperezdc:ngx-fancyindex:v0.4.2:fancyindex
+HTTP_FANCYINDEX_VARS= DSO_EXTMODS+=fancyindex
+
+HTTP_FOOTER_GH_TUPLE= alibaba:nginx-http-footer-filter:1.2.2:footer
+HTTP_FOOTER_CONFIGURE_ON= --add-module=${WRKSRC_footer}
+
+HTTP_GEOIP2_GH_TUPLE= leev:ngx_http_geoip2_module:2.0:geoip2
+HTTP_GEOIP2_CFLAGS= -I${LOCALBASE}/include
+HTTP_GEOIP2_VARS= DSO_EXTMODS+=geoip2
+HTTP_GEOIP2_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb
+
+HTTP_JSON_STATUS_GH_TUPLE= nginx-modules:ngx_http_json_status_module:1d2f303:json_status
+HTTP_JSON_STATUS_CONFIGURE_ON= --add-module=${WRKSRC_json_status}
+
+HTTP_MOGILEFS_MASTER_SITES= http://www.grid.net.ru/nginx/download/:mogilefs
+HTTP_MOGILEFS_DISTFILES= nginx_mogilefs_module-1.0.4.tar.gz:mogilefs
+HTTP_MOGILEFS_CONFIGURE_ON= --add-module=${WRKDIR}/nginx_mogilefs_module-1.0.4
+HTTP_MOGILEFS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_mogilefs_module.c
+
+HTTP_MP4_H264_MASTER_SITES= http://h264.code-shop.com/download/:mp4streaming
+HTTP_MP4_H264_DISTFILES= nginx_mod_h264_streaming-2.2.7.tar.gz:mp4streaming
+HTTP_MP4_H264_CONFIGURE_ON= --add-module=${WRKDIR}/nginx_mod_h264_streaming-2.2.7
+HTTP_MP4_H264_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_streaming_module.c
+
+HTTP_NOTICE_GH_TUPLE= kr:nginx-notice:3c95966:notice
+HTTP_NOTICE_CONFIGURE_ON= --add-module=${WRKSRC_notice}
+HTTP_NOTICE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_notice_module.c
+
+HTTP_PUSH_GH_TUPLE= slact:nchan:v1.1.14:push
+HTTP_PUSH_VARS= DSO_EXTMODS+=push
+
+HTTP_PUSH_STREAM_GH_TUPLE= wandenberg:nginx-push-stream-module:0.5.4:pushstream
+HTTP_PUSH_STREAM_CONFIGURE_ON= --add-module=${WRKSRC_pushstream}
+
+HTTP_REDIS_MASTER_SITES= LOCAL/osa:redis
+HTTP_REDIS_DISTFILES= ngx_http_redis-0.3.8.tar.gz:redis
+HTTP_REDIS_VARS= DSO_EXTDIRS+=ngx_http_redis-0.3.8
+
+HTTP_RESPONSE_MASTER_SITES= http://catap.ru/downloads/nginx/:response
+HTTP_RESPONSE_DISTFILES= ngx_http_response-0.3.tar.gz:response
+HTTP_RESPONSE_CONFIGURE_ON= --add-module=${WRKDIR}/ngx_http_response-0.3
+
+HTTP_SUBS_FILTER_GH_TUPLE= yaoweibin:ngx_http_substitutions_filter_module:v0.6.4:subs_filter
+HTTP_SUBS_FILTER_CONFIGURE_ON= --add-module=${WRKSRC_subs_filter}
+
+HTTP_TARANTOOL_LIB_DEPENDS= libmsgpuck.so:devel/msgpuck \
+ libyajl.so:devel/yajl
+HTTP_TARANTOOL_GH_TUPLE= tarantool:nginx_upstream_module:1278ee5:nginx_tarantool
+HTTP_TARANTOOL_VARS= DSO_EXTMODS+=nginx_tarantool
+HTTP_TARANTOOL_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_tarantool-config \
+ ${PATCHDIR}/extra-patch-ngx_http_tarantool-src-tp_transcode.c
+
+HTTP_UPLOAD_GH_TUPLE= Austinb:nginx-upload-module:72ec037:upload
+HTTP_UPLOAD_VARS= DSO_EXTMODS+=upload
+
+HTTP_UPLOAD_PROGRESS_GH_TUPLE= masterzen:nginx-upload-progress-module:afb2d31:uploadprogress
+HTTP_UPLOAD_PROGRESS_VARS= DSO_EXTMODS+=uploadprogress
+
+HTTP_UPSTREAM_CHECK_GH_TUPLE= yaoweibin:nginx_upstream_check_module:9aecf15:upstreamcheck
+HTTP_UPSTREAM_CHECK_CONFIGURE_ARGS= --add-module=${WRKSRC_upstreamcheck}
+HTTP_UPSTREAM_CHECK_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c \
+ ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c \
+ ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c \
+ ${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.c \
+ ${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.h
+
+HTTP_UPSTREAM_FAIR_GH_TUPLE= cryptofuture:nginx-upstream-fair:b5be36f:upstreamfair
+HTTP_UPSTREAM_FAIR_VARS= DSO_EXTMODS+=upstreamfair
+
+HTTP_UPSTREAM_STICKY_IMPLIES= HTTP_SSL
+HTTP_UPSTREAM_STICKY_MASTER_SITES= https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/:upstreamsticky
+HTTP_UPSTREAM_STICKY_DISTFILES= 08a395c66e42.tar.gz:upstreamsticky
+HTTP_UPSTREAM_STICKY_CONFIGURE_ON= --add-module=${WRKDIR}/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/
+HTTP_UPSTREAM_STICKY_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_sticky_misc.c
+
+HTTP_VIDEO_THUMBEXTRACTOR_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \
+ libavcodec.so:multimedia/ffmpeg \
+ libavutil.so:multimedia/ffmpeg \
+ libswscale.so:multimedia/ffmpeg
+DA!LIBRESSL_1_0_APIHTTP_VIDEO_THUMBEXTRACTOR_USES= jpeg
+HTTP_VIDEO_THUMBEXTRACTOR_GH_TUPLE= wandenberg:nginx-video-thumbextractor-module:0.9.0:vte
+HTTP_VIDEO_THUMBEXTRACTOR_CONFIGURE_ARGS=--add-module=${WRKSRC_vte}
+
+HTTP_ZIP_GH_TUPLE= anthonyryan1:mod_zip:74ef235:mod_zip
+HTTP_ZIP_CONFIGURE_ON= --add-module=${WRKSRC_mod_zip}
+
+ICONV_IMPLIES= DEVEL_KIT
+ICONV_USES= iconv
+ICONV_GH_TUPLE= calio:iconv-nginx-module:v0.14:iconv
+ICONV_VARS= DSO_EXTMODS+=iconv
+ICONV_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-calio-iconv-nginx-module-config
+
+LET_GH_TUPLE= arut:nginx-let-module:v0.0.4:let
+LET_CONFIGURE_ARGS= --add-module=${WRKSRC_let}
+
+LUA_IMPLIES= DEVEL_KIT
+LUA_LIB_DEPENDS= libluajit-5.1.so:lang/luajit
+LUA_CONFIGURE_ENV= LUAJIT_INC=${LOCALBASE}/include/luajit-2.0 \
+ LUAJIT_LIB=${LOCALBASE}/lib
+LUA_GH_TUPLE= openresty:lua-nginx-module:v0.10.11:lua
+LUA_VARS= DSO_EXTMODS+=lua
+
+MEMC_GH_TUPLE= openresty:memc-nginx-module:v0.18:memc
+MEMC_VARS= DSO_EXTMODS+=memc
+
+MODSECURITY_LIB_DEPENDS= libapr-1.so:devel/apr1 \
+ libcurl.so:ftp/curl \
+ libluajit-5.1.so:lang/luajit \
+ libpcre.so:devel/pcre \
+ libyajl.so:devel/yajl
+MODSECURITY_USE= GNOME=libxml2
+MODSECURITY_USES= apache:2.2+ pkgconfig shebangfix
+MODSECURITY_MASTER_SITES= http://www.modsecurity.org/tarball/2.9.1S/RC/rc/:modsecurity
+MODSECURITY_DISTFILES= modsecurity-2.9.1.tar.gz:modsecurity
+MODSECURITY_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-modsecurity-configure \
+ ${PATCHDIR}/extra-patch-ngx_http_modsecurity.c
+MODSECURITY_VARS= WRKSRC_modsecurity=${WRKDIR}/modsecurity-2.9.1
+
+MODSECURITY3_LIB_DEPENDS= libmodsecurity.so:www/mod_security3
+MODSECURITY3_GH_TUPLE= SpiderLabs:ModSecurity-nginx:c0ae166:modsec
+MODSECURITY3_CONFIGURE_ON= --add-module=${WRKSRC_modsec}
+
+NAXSI_NGINX_VER= 0.55.3
+NAXSI_GH_TUPLE= nbs-system:naxsi:${NAXSI_NGINX_VER}:naxsi
+NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
+
+NJS_GH_TUPLE= nginx:njs:4ed8a0b:njs
+NJS_VARS= DSO_EXTMODS+=njs NJS_SUBDIR=/nginx
+
+PASSENGER_NGINX_VER= 5.2.1
+PASSENGER_CATEGORIES= ruby
+PASSENGER_USE= ruby=yes
+PASSENGER_BUILD_DEPENDS= ${LOCALBASE}/bin/rake:devel/rubygem-rake
+PASSENGER_RAKE_BIN= ${LOCALBASE}/bin/rake
+PASSENGER_MASTER_SITES= http://s3.amazonaws.com/phusion-passenger/releases/:passenger
+PASSENGER_DISTFILES= passenger-${PASSENGER_NGINX_VER}.tar.gz:passenger
+PASSENGER_VARS= WRKSRC_passenger=${WRKDIR}/passenger-${PASSENGER_NGINX_VER} \
+ DSO_EXTDIRS+=passenger-${PASSENGER_NGINX_VER}/src/nginx_module
+PASSENGER_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-passenger-build-nginx.rb
+
+POSTGRES_USES= pgsql
+POSTGRES_GH_TUPLE= FRiCKLE:ngx_postgres:1.0rc7:postgres
+POSTGRES_CONFIGURE_ON= --add-module=${WRKSRC_postgres}
+POSTGRES_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_postgres-config \
+ ${PATCHDIR}/extra-patch-ngx_postgres_module.c
+
+RDS_CSV_GH_TUPLE= openresty:rds-csv-nginx-module:v0.08:rdscsv
+RDS_CSV_CONFIGURE_ON= --add-module=${WRKSRC_rdscsv}
+
+RDS_JSON_GH_TUPLE= openresty:rds-json-nginx-module:v0.14:rdsjson
+RDS_JSON_CONFIGURE_ON= --add-module=${WRKSRC_rdsjson}
+
+REDIS2_GH_TUPLE= openresty:redis2-nginx-module:v0.14:redis2
+REDIS2_VARS= DSO_EXTMODS+=redis2
+
+RTMP_GH_TUPLE= arut:nginx-rtmp-module:v1.2.1:rtmp
+RTMP_VARS= DSO_EXTMODS+=rtmp
+
+SET_MISC_IMPLIES= DEVEL_KIT
+SET_MISC_GH_TUPLE= openresty:set-misc-nginx-module:cda7e50:setmisc
+SET_MISC_VARS= DSO_EXTMODS+=setmisc
+
+SFLOW_GH_TUPLE= sflow:nginx-sflow-module:543c72a:sflow
+SFLOW_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_sflow_config.c \
+ ${PATCHDIR}/extra-patch-ngx_http_sflow_config.h \
+ ${PATCHDIR}/extra-patch-ngx_http_sflow_module.c
+
+SHIBBOLETH_GH_TUPLE= nginx-shib:nginx-http-shibboleth:f07bf3c:shibboleth
+SHIBBOLETH_VARS= DSO_EXTMODS+=shibboleth
+
+SLOWFS_CACHE_MASTER_SITES= http://labs.frickle.com/files/:slowfs_cache
+SLOWFS_CACHE_DISTFILES= ngx_slowfs_cache-1.10.tar.gz:slowfs_cache
+SLOWFS_CACHE_CONFIGURE_ON= --add-module=${WRKDIR}/ngx_slowfs_cache-1.10
+
+SMALL_LIGHT_LIB_DEPENDS= libMagickWand-6.so:graphics/ImageMagick \
+ libpcre.so:devel/pcre
+SMALL_LIGHT_GH_TUPLE= cubicdaiya:ngx_small_light:v0.9.2:small_light
+SMALL_LIGHT_VARS= DSO_EXTMODS+=small_light
+
+SRCACHE_GH_TUPLE= openresty:srcache-nginx-module:v0.31:srcache
+#SRCACHE_CONFIGURE_ON= --add-module=${WRKSRC_srcache}
+SRCACHE_VARS= DSO_EXTMODS+=srcache
+
+XSS_GH_TUPLE= openresty:xss-nginx-module:v0.05:xss
+XSS_CONFIGURE_ON= --add-module=${WRKSRC_xss}
diff --git a/www/nginx/Makefile.options.desc b/www/nginx/Makefile.options.desc
new file mode 100644
index 000000000000..6021e5d6a1a3
--- /dev/null
+++ b/www/nginx/Makefile.options.desc
@@ -0,0 +1,107 @@
+# $FreeBSD$
+
+AJP_DESC= 3rd party ajp module
+ARRAYVAR_DESC= 3rd party array_var module
+AWS_AUTH_DESC= 3rd party aws auth module
+BROTLI_DESC= 3rd party brotli module
+CACHE_PURGE_DESC= 3rd party cache_purge module
+CLOJURE_DESC= 3rd party clojure module
+CT_DESC= 3rd party cert_transparency module (SSL req.)
+DEBUGLOG_DESC= Enable debug log (--with-debug)
+DEBUG_DESC= Build with debugging support
+DEVEL_KIT_DESC= 3rd party Nginx Development Kit module
+DRIZZLE_DESC= 3rd party drizzle module
+DSO_DESC= Enable dynamic modules support
+DYNAMIC_UPSTREAM_DESC= 3rd party dynamic_upstream module
+ECHO_DESC= 3rd party echo module
+ENCRYPTSESSION_DESC= 3rd party encrypted_session module
+FASTDFS_DESC= 3rd party fastdfs module
+FILE_AIO_DESC= Enable file aio
+FORMINPUT_DESC= 3rd party form_input module
+GOOGLE_PERFTOOLS_DESC= Enable google perftools module
+GRIDFS_DESC= 3rd party gridfs module
+HEADERS_MORE_DESC= 3rd party headers_more module
+HTTPGRP_DESC= Modules that require HTTP module
+HTTPV2_DESC= Enable HTTP/2 protocol support (SSL req.)
+HTTP_ACCEPT_LANGUAGE_DESC= 3rd party accept_language module
+HTTP_ADDITION_DESC= Enable http_addition module
+HTTP_AUTH_DIGEST_DESC= 3rd party http_authdigest module
+HTTP_AUTH_KRB5_DESC= 3rd party http_auth_gss module
+HTTP_AUTH_LDAP_DESC= 3rd party http_auth_ldap module
+HTTP_AUTH_PAM_DESC= 3rd party http_auth_pam module
+HTTP_AUTH_REQ_DESC= Enable http_auth_request module
+HTTP_CACHE_DESC= Enable http_cache module
+HTTP_DAV_DESC= Enable http_webdav module
+HTTP_DAV_EXT_DESC= 3rd party webdav_ext module
+HTTP_DESC= Enable HTTP module
+HTTP_EVAL_DESC= 3rd party eval module
+HTTP_FANCYINDEX_DESC= 3rd party http_fancyindex module
+HTTP_FLV_DESC= Enable http_flv module
+HTTP_FOOTER_DESC= 3rd party http_footer module
+HTTP_GEOIP2_DESC= 3rd party geoip2 module
+HTTP_GEOIP_DESC= Enable http_geoip module
+HTTP_GUNZIP_FILTER_DESC= Enable http_gunzip_filter module
+HTTP_GZIP_STATIC_DESC= Enable http_gzip_static module
+HTTP_IMAGE_FILTER_DESC= Enable http_image_filter module
+HTTP_JSON_STATUS_DESC= 3rd party http_json_status module
+HTTP_MOGILEFS_DESC= 3rd party mogilefs module
+HTTP_MP4_DESC= Enable http_mp4 module
+HTTP_MP4_H264_DESC= 3rd party mp4/h264 module
+HTTP_NOTICE_DESC= 3rd party notice module
+HTTP_PERL_DESC= Enable http_perl module
+HTTP_PUSH_DESC= 3rd party push module
+HTTP_PUSH_STREAM_DESC= 3rd party push stream module
+HTTP_RANDOM_INDEX_DESC= Enable http_random_index module
+HTTP_REALIP_DESC= Enable http_realip module
+HTTP_REDIS_DESC= 3rd party http_redis module
+HTTP_RESPONSE_DESC= 3rd party http_response module
+HTTP_REWRITE_DESC= Enable http_rewrite module
+HTTP_SECURE_LINK_DESC= Enable http_secure_link module
+HTTP_SLICE_DESC= Enable http_slice module
+HTTP_SSL_DESC= Enable http_ssl module
+HTTP_STATUS_DESC= Enable http_stub_status module
+HTTP_SUBS_FILTER_DESC= 3rd party subs filter module
+HTTP_SUB_DESC= Enable http_sub module
+HTTP_TARANTOOL_DESC= 3rd party tarantool upstream module
+HTTP_UPLOAD_DESC= 3rd party upload module
+HTTP_UPLOAD_PROGRESS_DESC= 3rd party uploadprogress module
+HTTP_UPSTREAM_CHECK_DESC= 3rd party upstream check module
+HTTP_UPSTREAM_FAIR_DESC= 3rd party upstream fair module
+HTTP_UPSTREAM_STICKY_DESC= 3rd party upstream sticky module
+HTTP_VIDEO_DESC= 3rd party video module support
+HTTP_VIDEO_THUMBEXTRACTOR_DESC= 3rd party video_thumbextractor module
+HTTP_XSLT_DESC= Enable http_xslt module
+HTTP_ZIP_DESC= 3rd party http_zip module
+ICONV_DESC= 3rd party iconv module
+IPV6_DESC= Enable IPv6 support
+LET_DESC= 3rd party let module
+LUA_DESC= 3rd party lua module
+MAILGRP_DESC= Modules that require MAIL module
+MAIL_DESC= Enable IMAP4/POP3/SMTP proxy module
+MAIL_IMAP_DESC= Enable IMAP4 proxy module
+MAIL_POP3_DESC= Enable POP3 proxy module
+MAIL_SMTP_DESC= Enable SMTP proxy module
+MAIL_SSL_DESC= Enable mail_ssl module
+MEMC_DESC= 3rd party memc (memcached) module
+MODSECURITY3_DESC= 3rd party mod_security v3 module
+MODSECURITY_DESC= 3rd party mod_security module
+NAXSI_DESC= 3rd party naxsi module
+NJS_DESC= Enable http_javascript module
+PASSENGER_DESC= 3rd party passenger module
+POSTGRES_DESC= 3rd party postgres module
+RDS_CSV_DESC= 3rd party rds_csv module
+RDS_JSON_DESC= 3rd party rds_json module
+REDIS2_DESC= 3rd party redis2 module
+RTMP_DESC= 3rd party rtmp module
+SET_MISC_DESC= 3rd party set_misc module
+SFLOW_DESC= 3rd party sflow module
+SHIBBOLETH_DESC= 3rd party shibboleth module
+SLOWFS_CACHE_DESC= 3rd party slowfs_cache module
+SMALL_LIGHT_DESC= 3rd party small_light module
+SRCACHE_DESC= 3rd party srcache module
+STREAM_DESC= Enable stream module
+STREAM_SSL_DESC= Enable stream_ssl module (SSL req.)
+STREAM_SSL_PREREAD_DESC= Enable stream_ssl_preread module (SSL req.)
+THREADS_DESC= Enable threads support
+WWW_DESC= Enable html sample files
+XSS_DESC= 3rd party xss module
diff --git a/www/nginx/files/extra-patch-nginx-ct-LibreSSL b/www/nginx/files/extra-patch-nginx-ct-LibreSSL
new file mode 100644
index 000000000000..4dd87b8a8fae
--- /dev/null
+++ b/www/nginx/files/extra-patch-nginx-ct-LibreSSL
@@ -0,0 +1,20 @@
+--- ../ nginx-ct-1.3.2/ngx_ssl_ct_module.c.orig 2016-11-30 22:58:29.000000000 +0100
++++ ../nginx-ct-1.3.2/ngx_ssl_ct_module.c 2017-02-11 19:42:19.741572000 +0100
+@@ -170,7 +170,7 @@
+ #endif
+ }
+
+-#ifndef OPENSSL_IS_BORINGSSL
++#if !defined(OPENSSL_IS_BORINGSSL) && !defined(LIBRESSL_VERSION_NUMBER)
+ /* add OpenSSL TLS extension */
+ if (SSL_CTX_add_server_custom_ext(ssl_ctx, NGX_SSL_CT_EXT,
+ &ngx_ssl_ct_ext_cb, NULL, NULL, NULL, NULL) == 0)
+@@ -184,7 +184,7 @@
+ return NGX_CONF_OK;
+ }
+
+-#ifndef OPENSSL_IS_BORINGSSL
++#if !defined(OPENSSL_IS_BORINGSSL) && !defined(LIBRESSL_VERSION_NUMBER)
+ int ngx_ssl_ct_ext_cb(SSL *s, unsigned int ext_type, const unsigned char **out,
+ size_t *outlen, int *al, void *add_arg)
+ {
diff --git a/www/nginx/pkg-plist b/www/nginx/pkg-plist
index 7ffc236d9406..bbc564e4cbe9 100644
--- a/www/nginx/pkg-plist
+++ b/www/nginx/pkg-plist
@@ -1,18 +1,20 @@
+%%FASTDFS%%@sample etc/fdfs/mod_fastdfs.conf.sample
@sample %%ETCDIR%%/fastcgi_params-dist %%ETCDIR%%/fastcgi_params
%%ETCDIR%%/koi-utf
%%ETCDIR%%/koi-win
+%%NAXSI%%%%ETCDIR%%/naxsi_core.rules
@sample %%ETCDIR%%/scgi_params-dist %%ETCDIR%%/scgi_params
@sample %%ETCDIR%%/uwsgi_params-dist %%ETCDIR%%/uwsgi_params
%%ETCDIR%%/win-utf
@sample %%ETCDIR%%/mime.types-dist %%ETCDIR%%/mime.types
@sample %%ETCDIR%%/nginx.conf-dist %%ETCDIR%%/nginx.conf
-%%WWWDATA%%@exec mkdir -p -m 755 %D/www/nginx-dist
-%%WWWDATA%%@exec if [ ! -d %D/www/nginx/ ] ; then ln -fs %D/www/nginx-dist %D/www/nginx; fi
+%%WWWDATA%%@postexec mkdir -p -m 755 %D/www/nginx-dist
+%%WWWDATA%%@postexec if [ ! -d %D/www/nginx/ ] ; then ln -fs %D/www/nginx-dist %D/www/nginx; fi
%%WWWDATA%%www/nginx-dist/EXAMPLE_DIRECTORY-DONT_ADD_OR_TOUCH_ANYTHING
%%WWWDATA%%www/nginx-dist/index.html
%%WWWDATA%%www/nginx-dist/50x.html
-%%WWWDATA%%@exec chmod a-w %D/www/nginx-dist
-%%WWWDATA%%@unexec if [ -L %D/www/nginx ]; then rm -f %D/www/nginx; fi
+%%WWWDATA%%@postexec chmod a-w %D/www/nginx-dist
+%%WWWDATA%%@postunexec if [ -L %D/www/nginx ]; then rm -f %D/www/nginx; fi
sbin/nginx
share/vim/vimfiles/ftdetect/nginx.vim
share/vim/vimfiles/ftplugin/nginx.vim
@@ -21,3 +23,5 @@ share/vim/vimfiles/syntax/nginx.vim
@dir %%NGINX_TMPDIR%%
@dir %%NGINX_LOGDIR%%
man/man8/nginx.8.gz
+%%HTTP_PERL%%%%SITE_ARCH%%/auto/nginx/nginx.so
+%%HTTP_PERL%%%%SITE_ARCH%%/nginx.pm