Index: head/www/nginx/Makefile =================================================================== --- head/www/nginx/Makefile (revision 549053) +++ head/www/nginx/Makefile (revision 549054) @@ -1,374 +1,374 @@ # Created by: Sergey A. Osokin # $FreeBSD$ PORTNAME= nginx PORTVERSION= 1.18.0 PORTREVISION?= 25 PORTEPOCH= 2 CATEGORIES= www MASTER_SITES= https://nginx.org/download/ \ http://nginx.org/download/ \ LOCAL/joneum DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER?= joneum@FreeBSD.org COMMENT?= Robust and small WWW server LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_mips= error ngx_spinlock() or ngx_atomic_cmp_set() are not defined BROKEN_mips64= error ngx_spinlock() or ngx_atomic_cmp_set() are not defined CONFLICTS_INSTALL= nginx-devel PORTSCOUT= limit:^1\.18\.[0-9]* USES= cpe CPE_VENDOR= nginx CPE_PRODUCT= nginx USE_GITHUB= nodefault NGINX_VARDIR?= /var NGINX_LOGDIR?= ${NGINX_VARDIR}/log/nginx NGINX_RUNDIR?= ${NGINX_VARDIR}/run NGINX_TMPDIR?= ${NGINX_VARDIR}/tmp/nginx HTTP_PORT?= 80 NGINX_ACCESSLOG?= ${NGINX_LOGDIR}/access.log NGINX_ERRORLOG?= ${NGINX_LOGDIR}/error.log CONFLICTS?= nginx-devel-1.* \ nginx-full-1.* \ nginx-lite-1.* \ nginx-naxsi-1.* USE_RC_SUBR= nginx SUB_FILES= pkg-message SUB_LIST+= WWWOWN=${WWWOWN} \ WWWGRP=${WWWGRP} \ NGINX_RUNDIR=${NGINX_RUNDIR} \ NGINX_TMPDIR=${NGINX_TMPDIR} \ PREFIX=${PREFIX} HAS_CONFIGURE= yes CONFIGURE_ARGS+=--prefix=${ETCDIR} \ --with-cc-opt="-I ${LOCALBASE}/include" \ --with-ld-opt="-L ${LOCALBASE}/lib" \ --conf-path=${ETCDIR}/nginx.conf \ --sbin-path=${PREFIX}/sbin/nginx \ --pid-path=${NGINX_RUNDIR}/nginx.pid \ --error-log-path=${NGINX_ERRORLOG} \ --user=${WWWOWN} --group=${WWWGRP} ALL_TARGET= PLIST_SUB+= NGINX_TMPDIR=${NGINX_TMPDIR} NGINX_LOGDIR=${NGINX_LOGDIR} WWWOWN=${WWWOWN} WWWGRP=${WWWGRP} USERS?= ${WWWOWN} GROUPS?=${WWWGRP} NO_OPTIONS_SORT= yes 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_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_SLICE_AHEAD \ - HTTP_SSL HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 STREAM STREAM_SSL \ - STREAM_SSL_PREREAD + HTTP_SSL HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 HTTPV2_AUTOTUNE \ + 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_TLS DYNAMIC_UPSTREAM ECHO ENCRYPTSESSION \ FORMINPUT GRIDFS HEADERS_MORE HTTP_ACCEPT_LANGUAGE \ HTTP_AUTH_DIGEST HTTP_AUTH_JWT HTTP_AUTH_KRB5 HTTP_AUTH_LDAP \ HTTP_AUTH_PAM HTTP_DAV_EXT HTTP_EVAL HTTP_FANCYINDEX HTTP_FOOTER \ HTTP_GEOIP2 HTTP_IP2LOCATION HTTP_IP2PROXY 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 LINK LUA \ MEMC MODSECURITY3 NAXSI OPENTRACING PASSENGER POSTGRES RDS_CSV \ RDS_JSON REDIS2 RTMP SET_MISC SFLOW SHIBBOLETH SLOWFS_CACHE \ SMALL_LIGHT SRCACHE VOD VTS XSS WEBSOCKIFY OPTIONS_GROUP_MAILGRP= MAIL MAIL_IMAP MAIL_POP3 MAIL_SMTP MAIL_SSL OPTIONS_DEFINE= DEBUG DEBUGLOG DSO FILE_AIO IPV6 KTLS NJS 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_EXCLUDE=${${OSVERSION} < 1300042:?KTLS:} OPTIONS_EXCLUDE_powerpc64= LUA OPTIONS_RADIO+= GSSAPI OPTIONS_RADIO_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_BASE_USES= gssapi GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags GSSAPI_MIT_USES= gssapi:mit OPTIONS_SUB= yes .include "Makefile.options.desc" .for opt in ${OPTIONS_GROUP_MAILGRP:NMAIL} ${opt}_IMPLIES= MAIL .endfor .for opt in ${OPTIONS_GROUP_HTTPGRP:NHTTP} WWW ${opt}_IMPLIES= HTTP .endfor GSSAPI_BASE_IMPLIES= HTTP_AUTH_KRB5 GSSAPI_HEIMDAL_IMPLIES= HTTP_AUTH_KRB5 GSSAPI_MIT_IMPLIES= HTTP_AUTH_KRB5 # 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" THREADS_CONFIGURE_ON= --with-threads # 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_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_ON= --with-http_dav_module HTTP_FLV_CONFIGURE_ON= --with-http_flv_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_ON= --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_USES= gnome 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 KTLS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ktls:-p1 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_CONFIGURE_ON= --with-stream_ssl_preread_module ### External modules .include "Makefile.extmod" .include .if ${PORT_OPTIONS:MDSO} _addbasemod= =dynamic _addextmod= add-dynamic-module .else _addextmod= add-module .endif .for mod in ${DSO_BASEMODS} CONFIGURE_ARGS+= --with-${mod}${_addbasemod} .endfor # Some modules depend on other being there before, for example, devel_kit needs # to be there before a few other. .for mod in ${FIRST_DSO_EXTMODS} CONFIGURE_ARGS+= --${_addextmod}=${WRKSRC_${mod}}${${mod:tu}_SUBDIR} .endfor .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 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:MHTTP_REWRITE} && !defined(USE_HTTP_REWRITE) PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-nopcre .endif .if ${PORT_OPTIONS:MKTLS} CFLAGS+= -DNGX_SSL_SENDFILE .endif .if ${PORT_OPTIONS:MPASSENGER} && empty(PORT_OPTIONS:MDEBUG) CONFIGURE_ENV+= OPTIMIZE="yes" CFLAGS+= -DNDEBUG .endif pre-everything:: @${ECHO_MSG} .if ${PORT_OPTIONS:MHTTP_UPSTREAM_FAIR} @${ECHO_MSG} "Enable http_ssl module to build upstream_fair with SSL support" .endif .if ${PORT_OPTIONS:MPASSENGER} @${ECHO_MSG} "This port install Passenger module only" .endif @${ECHO_MSG} post-extract-GRIDFS-on: @${RMDIR} ${WRKSRC_gridfs}/mongo-c-driver/ @${MV} ${WRKSRC_mongo_c} ${WRKSRC_gridfs}/mongo-c-driver post-patch: @${REINPLACE_CMD} 's!%%HTTP_PORT%%!${HTTP_PORT}!; \ s!%%PREFIX%%!${PREFIX}!; \ s!%%NGINX_ERRORLOG%%!${NGINX_ERRORLOG}!' \ ${WRKSRC}/conf/nginx.conf 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!%%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}!g; \ s!%%GSSAPIINCDIR%%!${GSSAPIINCDIR}!g; \ s!%%GSSAPILIBDIR%%!${GSSAPILIBDIR}!g' ${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 post-patch-HTTP_ZIP-on: @${REINPLACE_CMD} \ 's!^inline!static inline!' \ ${WRKSRC_mod_zip}/ngx_http_zip_parsers.* post-patch-ICONV-on: @${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config post-patch-PASSENGER-on: @${REINPLACE_CMD} \ '177,179s!true!false!' \ ${WRKSRC_PASSENGER}/build/basics.rb @${REINPLACE_CMD} \ 's!-I/usr/include/libev!!; \ s!-lev!!; \ s!-Iext/libev!!; \ s!-I/usr/include/libeio!!; \ s!-leio!!; \ s!-Iext/libeio!!' \ ${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_sflow}/ngx_http_sflow_config.h post-patch-VOD-on: @${REINPLACE_CMD} \ 's!%%PREFIX%%!${LOCALBASE}!g' \ ${WRKSRC_vod}/config pre-configure-SMALL_LIGHT-on: ( cd ${WRKSRC_small_light} && ./setup ) .if !target(do-install) do-install: ${MKDIR} ${STAGEDIR}${ETCDIR} ${MKDIR} ${STAGEDIR}${NGINX_TMPDIR} ${MKDIR} ${STAGEDIR}${NGINX_LOGDIR} ${INSTALL_PROGRAM} ${WRKSRC}/objs/nginx ${STAGEDIR}${PREFIX}/sbin .for i in koi-utf koi-win win-utf ${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR} .endfor .for i in fastcgi_params mime.types scgi_params uwsgi_params ${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR}/${i}-dist .endfor 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}/ # Install dynamic modules do-install-DSO-on: ${MKDIR} ${STAGEDIR}${MODULESDIR} (cd ${WRKSRC}/objs/ && ${FIND} . -name '*.so' -maxdepth 1 -type f \ -exec ${INSTALL_PROGRAM} {} ${STAGEDIR}${MODULESDIR} \;) do-install-LINK-on: ${INSTALL_DATA} ${WRKSRC_link}/src/ngx_link_func_module.h ${STAGEDIR}${PREFIX}/include do-install-NAXSI-on: ${INSTALL_DATA} \ ${WRKDIR}/naxsi-${NAXSI_NGINX_VER}/naxsi_config/naxsi_core.rules \ ${STAGEDIR}${ETCDIR} do-install-NJS-on: ${INSTALL_PROGRAM} ${WRKSRC_njs}/build/njs ${STAGEDIR}${PREFIX}/sbin .endif .if !target(post-install) post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/share/vim/vimfiles cd ${WRKSRC}/contrib/vim && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/vim/vimfiles ${INSTALL_MAN} ${WRKSRC}/objs/nginx.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 ${CAT} ${WRKSRC}/conf/nginx.conf >> ${STAGEDIR}${ETCDIR}/nginx.conf-dist post-install-WWW-on: ${MKDIR} ${STAGEDIR}${PREFIX}/www/nginx-dist (cd ${WRKSRC}/html && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/nginx-dist && \ ${TOUCH} ${STAGEDIR}${PREFIX}/www/nginx-dist/EXAMPLE_DIRECTORY-DONT_ADD_OR_TOUCH_ANYTHING) .endif .include Index: head/www/nginx/Makefile.extmod =================================================================== --- head/www/nginx/Makefile.extmod (revision 549053) +++ head/www/nginx/Makefile.extmod (revision 549054) @@ -1,308 +1,312 @@ # $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:75c94e6:aws_auth AWS_AUTH_VARS= DSO_EXTMODS+=aws_auth BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli BROTLI_GH_TUPLE= eustas:ngx_brotli:8104036:brotli BROTLI_VARS= DSO_EXTMODS+=brotli CACHE_PURGE_GH_TUPLE= nginx-modules:ngx_cache_purge:23dc16a:cache_purge CACHE_PURGE_CONFIGURE_ON= --add-module=${WRKDIR}/ngx_cache_purge-23dc16a 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.5.1: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 CT_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-ct-LibreSSL 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.11:drizzle DRIZZLE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-openresty-drizzle-nginx-module-config DRIZZLE_VARS= DSO_EXTMODS+=drizzle DYNAMIC_TLS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-dynamic_tls_records DYNAMIC_UPSTREAM_GH_TUPLE= cubicdaiya:ngx_dynamic_upstream:cc5dac3:dynamic_upstream DYNAMIC_UPSTREAM_VARS= DSO_EXTMODS+=dynamic_upstream DEVEL_KIT_GH_TUPLE= simpl:ngx_devel_kit:v0.3.1:devel_kit DEVEL_KIT_VARS= FIRST_DSO_EXTMODS+=devel_kit ECHO_GH_TUPLE= openresty:echo-nginx-module:996412d:echo ECHO_VARS= DSO_EXTMODS+=echo ENCRYPTSESSION_IMPLIES= DEVEL_KIT ENCRYPTSESSION_GH_TUPLE= openresty:encrypted-session-nginx-module:v0.08:encryptsession ENCRYPTSESSION_VARS= DSO_EXTMODS+=encryptsession FORMINPUT_IMPLIES= DEVEL_KIT FORMINPUT_GH_TUPLE= calio:form-input-nginx-module:v0.12:forminput FORMINPUT_VARS= DSO_EXTMODS+=forminput GRIDFS_GH_TUPLE= technowledgy:nginx_http_gridfs_module:7970bab:gridfs \ 10gen-archive:mongo-c-driver-legacy:f06669b:mongo_c GRIDFS_VARS= DSO_EXTMODS+=gridfs HEADERS_MORE_GH_TUPLE= openresty:headers-more-nginx-module:085fbbc:headers_more HEADERS_MORE_VARS= DSO_EXTMODS+=headers_more HTTP_ACCEPT_LANGUAGE_GH_TUPLE= dvershinin:nginx_accept_language_module:5683967:accept_language HTTP_ACCEPT_LANGUAGE_VARS= DSO_EXTMODS+=accept_language HTTP_AUTH_DIGEST_GH_TUPLE= atomx:nginx-http-auth-digest:cd86418:auth_digest HTTP_AUTH_DIGEST_VARS= DSO_EXTMODS+=auth_digest HTTP_AUTH_JWT_GH_TUPLE= TeslaGov:ngx-http-auth-jwt-module:80d89d9:http_auth_jwt HTTP_AUTH_JWT_VARS= DSO_EXTMODS+=http_auth_jwt HTTP_AUTH_JWT_LIB_DEPENDS= libjwt.so:www/libjwt libjansson.so:devel/jansson HTTP_AUTH_KRB5_GH_TUPLE= stnoonan:spnego-http-auth-nginx-module:21bb963:auth_krb5 HTTP_AUTH_KRB5_VARS= DSO_EXTMODS+=auth_krb5 HTTP_AUTH_KRB5_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-spnego-http-auth-nginx-module-config 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:v3.0.0:dav_ext HTTP_DAV_EXT_VARS= DSO_EXTMODS+=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.3: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.2:geoip2 HTTP_GEOIP2_CFLAGS= -I${LOCALBASE}/include HTTP_GEOIP2_VARS= DSO_EXTMODS+=geoip2 HTTP_GEOIP2_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb HTTP_IP2LOCATION_GH_TUPLE= ip2location:ip2location-nginx:7aa49ce:ip2location HTTP_IP2LOCATION_LIB_DEPENDS= libIP2Location.so:net/ip2location HTTP_IP2LOCATION_VARS= DSO_EXTMODS+=ip2location HTTP_IP2PROXY_GH_TUPLE= ip2location:ip2proxy-nginx:f9815e3:ip2proxy HTTP_IP2PROXY_LIB_DEPENDS= libIP2Proxy.so:net/ip2proxy HTTP_IP2PROXY_VARS= DSO_EXTMODS+=ip2proxy HTTP_IP2PROXY_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ip2proxy HTTP_JSON_STATUS_GH_TUPLE= nginx-modules:ngx_http_json_status_module:1d2f303:json_status HTTP_JSON_STATUS_VARS= DSO_EXTMODS+=json_status HTTP_JSON_STATUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_json_status_module-config HTTP_MOGILEFS_MASTER_SITES= http://www.grid.net.ru/nginx/download/:mogilefs HTTP_MOGILEFS_DISTFILES= nginx_mogilefs_module-1.0.4.tar.gz:mogilefs HTTP_MOGILEFS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_mogilefs_module.c \ ${PATCHDIR}/extra-patch-nginx_mogilefs_module-config HTTP_MOGILEFS_VARS= DSO_EXTDIRS+=nginx_mogilefs_module-1.0.4 HTTP_MP4_H264_MASTER_SITES= http://h264.code-shop.com/download/:mp4streaming HTTP_MP4_H264_CONFIGURE_ON= --with-cc-opt="-DLARGEFILE_SOURCE -DBUILDING_NGINX" HTTP_MP4_H264_DISTFILES= nginx_mod_h264_streaming-2.2.7.tar.gz:mp4streaming HTTP_MP4_H264_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_streaming_module.c \ ${PATCHDIR}/extra-patch-nginx_mod_h264_streaming-config HTTP_MP4_H264_VARS= DSO_EXTDIRS+=nginx_mod_h264_streaming-2.2.7 HTTP_NOTICE_GH_TUPLE= kr:nginx-notice:3c95966:notice HTTP_NOTICE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_notice_module.c \ ${PATCHDIR}/extra-patch-nginx-notice-config HTTP_NOTICE_VARS= DSO_EXTMODS+=notice 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_VARS= DSO_EXTMODS+=pushstream HTTP_REDIS_MASTER_SITES= LOCAL/osa:redis HTTP_REDIS_DISTFILES= ngx_http_redis-0.3.9.tar.gz:redis HTTP_REDIS_VARS= DSO_EXTDIRS+=ngx_http_redis-0.3.9 HTTP_RESPONSE_MASTER_SITES= http://catap.ru/downloads/nginx/:response HTTP_RESPONSE_DISTFILES= ngx_http_response-0.3.tar.gz:response HTTP_RESPONSE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_http_response-config HTTP_RESPONSE_VARS= DSO_EXTDIRS+=ngx_http_response-0.3 HTTP_SLICE_AHEAD_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_http_modules_ngx__http__slice_read_ahead.c HTTP_SUBS_FILTER_GH_TUPLE= yaoweibin:ngx_http_substitutions_filter_module:b8a71ea:subs_filter HTTP_SUBS_FILTER_VARS= DSO_EXTMODS+=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= fdintino:nginx-upload-module:aa42509: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_ON= --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= jaygooby:nginx-upstream-fair:10ecdcf:upstreamfair HTTP_UPSTREAM_FAIR_VARS= DSO_EXTMODS+=upstreamfair HTTP_UPSTREAM_STICKY_IMPLIES= HTTP_SSL HTTP_UPSTREAM_STICKY_GH_TUPLE= ayty-adrianomartins:nginx-sticky-module-ng:c407e0d:upstreamsticky HTTP_UPSTREAM_STICKY_VARS= DSO_EXTMODS+=upstreamsticky HTTP_VIDEO_THUMBEXTRACTOR_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \ libavcodec.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg \ libswscale.so:multimedia/ffmpeg HTTP_VIDEO_THUMBEXTRACTOR_USES= jpeg HTTP_VIDEO_THUMBEXTRACTOR_GH_TUPLE= Novetta:nginx-video-thumbextractor-module:f5b5bae:vte HTTP_VIDEO_THUMBEXTRACTOR_VARS= DSO_EXTMODS+=vte HTTP_ZIP_GH_TUPLE= rtm-ctrlz:mod_zip:cfd0be4:mod_zip HTTP_ZIP_VARS= DSO_EXTMODS+=mod_zip +HTTPV2_AUTOTUNE_IMPLIES=HTTPV2 +HTTPV2_AUTOTUNE_CONFIGURE_ON= --with-http_v2_autotune_upload +HTTPV2_AUTOTUNE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-h2-autotune + 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= baysao:nginx-let-module:c1f23aa:let LET_VARS= DSO_EXTMODS+=let LINK_GH_TUPLE= Taymindis:nginx-link-function:3.2.3:link LINK_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-link-function-config \ ${PATCHDIR}/extra-patch-ngx_link_func_module.c LINK_VARS= DSO_EXTMODS+=link LUA_IMPLIES= DEVEL_KIT LUA_LIB_DEPENDS= libluajit-5.1.so:lang/luajit-openresty LUA_RUN_DEPENDS= lua-resty-core>0:www/lua-resty-core LUA_CONFIGURE_ENV= LUAJIT_INC=${LOCALBASE}/include/luajit-2.1 \ LUAJIT_LIB=${LOCALBASE}/lib LUA_GH_TUPLE= openresty:lua-nginx-module:v0.10.17:lua LUA_VARS= DSO_EXTMODS+=lua MEMC_GH_TUPLE= openresty:memc-nginx-module:v0.18:memc MEMC_VARS= DSO_EXTMODS+=memc MODSECURITY3_IMPLIES= HTTP_ADDITION HTTP_IMAGE_FILTER HTTP_GUNZIP_FILTER HTTP_XSLT MODSECURITY3_LIB_DEPENDS= libmodsecurity.so:security/modsecurity3 MODSECURITY3_GH_TUPLE= SpiderLabs:ModSecurity-nginx:v1.0.1:modsec MODSECURITY3_VARS= DSO_EXTMODS+=modsec NAXSI_NGINX_VER= 0.56 NAXSI_GH_TUPLE= nbs-system:naxsi:${NAXSI_NGINX_VER}:naxsi NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src NJS_GH_TUPLE= nginx:njs:0.4.3:njs NJS_VARS= DSO_EXTMODS+=njs NJS_SUBDIR=/nginx NJS_USES= libedit OPENTRACING_GH_TUPLE= opentracing-contrib:nginx-opentracing:2d81c29:opentracing OPENTRACING_LIB_DEPENDS= libopentracing.so:devel/libopentracing OPENTRACING_VARS= DSO_EXTMODS+=opentracing OPENTRACING_SUBDIR=/opentracing OPENTRACING_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-opentracing-opentracing-config PASSENGER_NGINX_VER= 6.0.6 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 \ ${PATCHDIR}/extra-patch-passenger-disable-telemetry POSTGRES_USES= pgsql POSTGRES_GH_TUPLE= konstruxi:ngx_postgres:8aa7359:postgres POSTGRES_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ngx_postgres-config POSTGRES_VARS= DSO_EXTMODS+=postgres RDS_CSV_GH_TUPLE= openresty:rds-csv-nginx-module:v0.09:rdscsv RDS_CSV_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-rds-csv-nginx-module-config RDS_CSV_VARS= DSO_EXTMODS+=rdscsv RDS_JSON_GH_TUPLE= openresty:rds-json-nginx-module:v0.15:rdsjson RDS_JSON_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-rds-json-nginx-module-config RDS_JSON_VARS= DSO_EXTMODS+=rdsjson REDIS2_GH_TUPLE= openresty:redis2-nginx-module:v0.15:redis2 REDIS2_VARS= DSO_EXTMODS+=redis2 RTMP_GH_TUPLE= ut0mt8:nginx-rtmp-module:f0ea623: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_GH_TUPLE= baysao:ngx_slowfs_cache:d011a18:slowfs_cache SLOWFS_CACHE_VARS= DSO_EXTMODS+=slowfs_cache SMALL_LIGHT_LIB_DEPENDS= libMagickWand-6.so:graphics/ImageMagick6 \ 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_VARS= DSO_EXTMODS+=srcache VOD_GH_TUPLE= kaltura:nginx-vod-module:1.23:vod VOD_USE= GNOME=libxml2 VOD_VARS= DSO_EXTMODS+=vod VOD_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-vod-module-config \ ${PATCHDIR}/extra-patch-vod-filters-audio_encoder.c VTS_GH_TUPLE= vozlt:nginx-module-vts:v0.1.18:vts VTS_CONFIGURE_ON= --add-module=${WRKSRC_vts} XSS_GH_TUPLE= openresty:xss-nginx-module:v0.06:xss XSS_VARS= DSO_EXTMODS+=xss XSS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-xss-nginx-module-config WEBSOCKIFY_GH_TUPLE= tg123:websockify-nginx-module:e82d254:websockify WEBSOCKIFY_CONFIGURE_ON= --add-module=${WRKSRC_websockify} Index: head/www/nginx/Makefile.options.desc =================================================================== --- head/www/nginx/Makefile.options.desc (revision 549053) +++ head/www/nginx/Makefile.options.desc (revision 549054) @@ -1,116 +1,117 @@ # $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_TLS_DESC= 3rd party dynamic tls records patch DYNAMIC_UPSTREAM_DESC= 3rd party dynamic_upstream module ECHO_DESC= 3rd party echo module ENCRYPTSESSION_DESC= 3rd party encrypted_session 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 GSSAPI_DESC= GSSAPI implementation (imply HTTP_AUTH_KRB5) HEADERS_MORE_DESC= 3rd party headers_more module HTTPGRP_DESC= Modules that require HTTP module HTTPV2_DESC= Enable HTTP/2 protocol support (SSL req.) +HTTPV2_AUTOTUNE_DESC= Enable HTTP/2 upload auto-tuning 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_JWT_DESC= 3rd party http_auth_jwt 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_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_IP2LOCATION_DESC= 3rd party ip2location-nginx module HTTP_IP2PROXY_DESC= 3rd party ip2proxy-nginx 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_SLICE_AHEAD_DESC= Enable http_slice_ahead 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 KTLS_DESC= Kernel TLS offload LET_DESC= 3rd party let module LINK_DESC= 3rd party link function 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 modsecurity3 module NAXSI_DESC= 3rd party naxsi module NJS_DESC= Enable http_javascript module OPENTRACING_DESC= 3rd party opentracing 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 VOD_DESC= 3rd party vod module VTS_DESC= 3rd party vts module WWW_DESC= Enable html sample files XSS_DESC= 3rd party xss module WEBSOCKIFY_DESC= 3rd party websockify module Index: head/www/nginx/files/extra-patch-h2-autotune =================================================================== --- head/www/nginx/files/extra-patch-h2-autotune (nonexistent) +++ head/www/nginx/files/extra-patch-h2-autotune (revision 549054) @@ -0,0 +1,449 @@ +diff -r 7015f26aef90 -r 1739da077a8e auto/modules +--- auto/modules Wed Jul 29 13:28:04 2020 +0300 ++++ auto/modules Wed Aug 26 15:51:41 2020 -0700 +@@ -420,6 +420,15 @@ + ngx_module_libs= + ngx_module_link=$HTTP_V2 + ++ if [ $HTTP_V2 = YES -a $HTTP_V2_AUTOTUNE_UPLOAD = YES ]; then ++ have=NGX_HTTP_V2_AUTOTUNE_UPLOAD . auto/have ++ ++ ngx_module_deps="$ngx_module_deps \ ++ src/http/v2/ngx_autotune_upload.h" ++ ngx_module_srcs="$ngx_module_srcs \ ++ src/http/v2/ngx_autotune_upload.c" ++ fi ++ + . auto/module + fi + +diff -r 7015f26aef90 -r 1739da077a8e auto/options +--- auto/options Wed Jul 29 13:28:04 2020 +0300 ++++ auto/options Wed Aug 26 15:51:41 2020 -0700 +@@ -59,6 +59,7 @@ + HTTP_GZIP=YES + HTTP_SSL=NO + HTTP_V2=NO ++HTTP_V2_AUTOTUNE_UPLOAD=NO + HTTP_SSI=YES + HTTP_REALIP=NO + HTTP_XSLT=NO +@@ -224,6 +225,7 @@ + + --with-http_ssl_module) HTTP_SSL=YES ;; + --with-http_v2_module) HTTP_V2=YES ;; ++ --with-http_v2_autotune_upload) HTTP_V2_AUTOTUNE_UPLOAD=YES;; + --with-http_realip_module) HTTP_REALIP=YES ;; + --with-http_addition_module) HTTP_ADDITION=YES ;; + --with-http_xslt_module) HTTP_XSLT=YES ;; +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_autotune_upload.c +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ src/http/v2/ngx_autotune_upload.c Wed Aug 26 15:51:41 2020 -0700 +@@ -0,0 +1,198 @@ ++/* ++ * Copyright (C) 2020 Cloudflare, Inc. ++ */ ++ ++#include ++#include ++#include ++ ++static void *ngx_prealloc(ngx_pool_t *pool, void *p, size_t size); ++static void *ngx_realloc(void *oldp, size_t size, ngx_log_t *log); ++ ++static ngx_int_t ngx_resize_buf(ngx_pool_t *pool, ngx_buf_t *buf, size_t nsize); ++ ++ ++static void * ++ngx_prealloc(ngx_pool_t *pool, void *p, size_t size) ++{ ++ ngx_pool_large_t *l; ++ void *newp; ++ ++ for (l = pool->large; l; l = l->next) { ++ if (p == l->alloc) { ++ ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, ++ "prealloc: %p", l->alloc); ++ ++ newp = ngx_realloc(l->alloc, size, pool->log); ++ if (newp) { ++ l->alloc = newp; ++ ++ return newp; ++ } else { ++ return NULL; ++ } ++ } ++ } ++ ++ /* not found */ ++ return NULL; ++} ++ ++ ++static void * ++ngx_realloc(void *oldp, size_t size, ngx_log_t *log) ++{ ++ void *newp; ++ ++ newp = realloc(oldp, size); ++ if (newp == NULL) { ++ ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, ++ "realloc(%uz) failed", size); ++ } ++ ++ ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, log, 0, "realloc: %p:%uz", newp, size); ++ ++ return newp; ++} ++ ++ ++/* resize the buffer to the new size */ ++static ngx_int_t ++ngx_resize_buf(ngx_pool_t *pool, ngx_buf_t *buf, size_t nsize) ++{ ++ void *nbuf = ngx_prealloc(pool, buf->start, nsize); ++ ++ if (!nbuf) { ++ return NGX_ERROR; ++ } ++ ++ /* if buf->start is moved to a new location */ ++ if (nbuf != buf->start) { ++ buf->pos = (u_char *)nbuf + (buf->pos - buf->start); ++ buf->last = (u_char *)nbuf + (buf->last - buf->start); ++ } ++ ++ /* resize buffer */ ++ buf->start = nbuf; ++ buf->end = (u_char *)nbuf + nsize; ++ ++ return NGX_OK; ++} ++ ++ ++/* get current TCP RTT (ms) of the connection */ ++ngx_int_t ++ngx_tcp_rtt_ms(int fd) ++{ ++#if (NGX_HAVE_TCP_INFO) ++ struct tcp_info ti; ++ socklen_t len; ++ ++ len = sizeof(struct tcp_info); ++ if (getsockopt(fd, IPPROTO_TCP, TCP_INFO, &ti, &len) == 0) { ++ return ti.tcpi_rtt / 1000; ++ } ++#endif ++ ++ return NGX_ERROR; ++} ++ ++ ++/* return current timestamp (ms) */ ++ngx_msec_int_t ++ngx_timestamp_ms() ++{ ++ ngx_time_t *tp = ngx_timeofday(); ++ ++ return tp->sec * 1000 + tp->msec; ++} ++ ++ ++/* ++ * double the buffer size based on the current BDP. ++ * returns the new window size if resized. ++ * returns the current window size if not resized. ++ * if resizing fails, returns 0. ++ */ ++size_t ++ngx_autotune_client_body_buffer(ngx_http_request_t *r, ++ size_t window) ++{ ++ ngx_buf_t *buf; ++ ngx_http_v2_stream_t *stream; ++ ngx_msec_int_t ts_now; ++ ngx_http_v2_loc_conf_t *h2lcf; ++ size_t max_window; ++ ++ h2lcf = ngx_http_get_module_loc_conf(r, ngx_http_v2_module); ++ max_window = h2lcf->max_client_body_buffer_size; ++ ++ /* no autotuning configured */ ++ if (!max_window) { ++ return window; ++ } ++ ++ /* if max_window is smaller than the current window, do nothing */ ++ if (window >= max_window) { ++ return window; ++ } ++ ++ stream = r->stream; ++ buf = r->request_body->buf; ++ ++ /* if rtt is not available, do nothing */ ++ if (stream->rtt == NGX_ERROR) { ++ return window; ++ } ++ ++ ts_now = ngx_timestamp_ms(); ++ ++ if (ts_now >= (stream->ts_checkpoint + stream->rtt)) { ++ size_t cur_win = (buf->end - buf->start); ++ size_t new_win = ngx_min(cur_win * 2 , max_window); ++ ++ /* if already on the max size, do nothing */ ++ if (cur_win >= max_window) { ++ return window; ++ } ++ ++ /* min rtt is 1ms to prevent BDP from becoming zero. */ ++ ngx_uint_t rtt = ngx_max(stream->rtt, 1); ++ ++ /* ++ * elapsed time (ms) from last checkpoint. mininum value is 1 to ++ * prevent from dividing by zero in BDP calculation ++ */ ++ ngx_uint_t elapsed = ngx_max(ts_now - stream->ts_checkpoint, 1); ++ ++ /* calculate BDP (bytes) = rtt * bw */ ++ ngx_uint_t bdp = rtt * stream->bytes_body_read / elapsed; ++ ++ ngx_log_debug4(NGX_LOG_DEBUG_HTTP, stream->connection->connection->log, 0, ++ "http2 autotune sid:%ui rtt:%z bdp:%z win:%z", ++ stream->node->id, stream->rtt, bdp, window); ++ ++ stream->bytes_body_read = 0; ++ stream->ts_checkpoint = ts_now; ++ ++ /* ++ * check if we need to bump the buffer size ++ * based on the heuristic condition ++ */ ++ if (bdp > (window / 4)) { ++ if (ngx_resize_buf(r->pool, buf, new_win) != NGX_OK) { ++ return 0; ++ } ++ ++ ngx_log_debug4(NGX_LOG_DEBUG_HTTP, ++ stream->connection->connection->log, 0, ++ "http2 autotune sid:%ui rtt:%z resized:%z->%z", ++ stream->node->id, stream->rtt, window, ++ window + (new_win - cur_win)); ++ ++ return window + (new_win - cur_win); ++ } ++ } ++ ++ return window; ++} +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_autotune_upload.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ src/http/v2/ngx_autotune_upload.h Wed Aug 26 15:51:41 2020 -0700 +@@ -0,0 +1,25 @@ ++/* ++ * Copyright (C) 2020 Cloudflare, Inc. ++ */ ++ ++#ifndef _NGX_AUTOTUNE_UPLOAD_H_INCLUDED_ ++#define _NGX_AUTOTUNE_UPLOAD_H_INCLUDED_ ++ ++#include ++ ++ ++/* the maximum size of the receiver window */ ++#define NGX_HTTP_V2_MAX_CLIENT_BODY_BUFFER_SIZE (64*1024*1024) ++ ++ ++/* get current TCP RTT (ms) of the connection */ ++ngx_int_t ngx_tcp_rtt_ms(int fd); ++ ++/* return current timestamp (ms) */ ++ngx_msec_int_t ngx_timestamp_ms(); ++ ++/* auto resize the buffer */ ++size_t ngx_autotune_client_body_buffer(ngx_http_request_t *r, size_t window); ++ ++ ++#endif +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_http_v2.c +--- src/http/v2/ngx_http_v2.c Wed Jul 29 13:28:04 2020 +0300 ++++ src/http/v2/ngx_http_v2.c Wed Aug 26 15:51:41 2020 -0700 +@@ -11,6 +11,10 @@ + #include + + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++#include ++#endif ++ + typedef struct { + ngx_str_t name; + ngx_uint_t offset; +@@ -1122,6 +1126,10 @@ + pos += size; + h2c->state.length -= size; + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ stream->bytes_body_read += size; ++#endif ++ + if (h2c->state.length) { + return ngx_http_v2_state_save(h2c, pos, end, + ngx_http_v2_state_read_data); +@@ -3211,6 +3219,12 @@ + + h2c->priority_limit += h2scf->concurrent_streams; + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ stream->bytes_body_read = 0; ++ stream->rtt = ngx_tcp_rtt_ms(r->connection->fd); ++ stream->ts_checkpoint = ngx_timestamp_ms(); ++#endif ++ + return stream; + } + +@@ -4323,6 +4337,15 @@ + return NGX_AGAIN; + } + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ window = ngx_autotune_client_body_buffer(r, window); ++ ++ /* resizing failed */ ++ if (!window) { ++ return NGX_HTTP_INTERNAL_SERVER_ERROR; ++ } ++#endif ++ + if (ngx_http_v2_send_window_update(h2c, stream->node->id, + window - stream->recv_window) + == NGX_ERROR) +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_http_v2.h +--- src/http/v2/ngx_http_v2.h Wed Jul 29 13:28:04 2020 +0300 ++++ src/http/v2/ngx_http_v2.h Wed Aug 26 15:51:41 2020 -0700 +@@ -210,6 +210,15 @@ + + ngx_pool_t *pool; + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ /* how much client request body read */ ++ ngx_uint_t bytes_body_read; ++ /* timestamp of next checkpoint */ ++ ngx_msec_int_t ts_checkpoint; ++ /* rtt(ms) of the connection */ ++ ngx_int_t rtt; ++#endif ++ + unsigned waiting:1; + unsigned blocked:1; + unsigned exhausted:1; +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_http_v2_module.c +--- src/http/v2/ngx_http_v2_module.c Wed Jul 29 13:28:04 2020 +0300 ++++ src/http/v2/ngx_http_v2_module.c Wed Aug 26 15:51:41 2020 -0700 +@@ -10,6 +10,9 @@ + #include + #include + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++#include ++#endif + + static ngx_int_t ngx_http_v2_add_variables(ngx_conf_t *cf); + +@@ -38,6 +41,10 @@ + static char *ngx_http_v2_chunk_size(ngx_conf_t *cf, void *post, void *data); + static char *ngx_http_v2_spdy_deprecated(ngx_conf_t *cf, ngx_command_t *cmd, + void *conf); ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++static char *ngx_http_v2_max_client_body_buffer_size(ngx_conf_t *cf, void *post, ++ void *data); ++#endif + + + static ngx_conf_post_t ngx_http_v2_recv_buffer_size_post = +@@ -50,6 +57,10 @@ + { ngx_http_v2_streams_index_mask }; + static ngx_conf_post_t ngx_http_v2_chunk_size_post = + { ngx_http_v2_chunk_size }; ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++static ngx_conf_post_t ngx_http_v2_max_client_body_buffer_size_post = ++ { ngx_http_v2_max_client_body_buffer_size }; ++#endif + + + static ngx_command_t ngx_http_v2_commands[] = { +@@ -208,6 +219,15 @@ + 0, + NULL }, + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ { ngx_string("http2_max_client_body_buffer_size"), ++ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, ++ ngx_conf_set_size_slot, ++ NGX_HTTP_LOC_CONF_OFFSET, ++ offsetof(ngx_http_v2_loc_conf_t, max_client_body_buffer_size), ++ &ngx_http_v2_max_client_body_buffer_size_post }, ++#endif ++ + ngx_null_command + }; + +@@ -423,6 +443,10 @@ + h2lcf->push_preload = NGX_CONF_UNSET; + h2lcf->push = NGX_CONF_UNSET; + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ h2lcf->max_client_body_buffer_size = NGX_CONF_UNSET_SIZE; ++#endif ++ + return h2lcf; + } + +@@ -443,6 +467,12 @@ + + ngx_conf_merge_value(conf->push_preload, prev->push_preload, 0); + ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ /* default is 0: no auto tuning */ ++ ngx_conf_merge_size_value(conf->max_client_body_buffer_size, ++ prev->max_client_body_buffer_size, 0); ++#endif ++ + return NGX_CONF_OK; + } + +@@ -608,3 +638,19 @@ + + return NGX_CONF_OK; + } ++ ++ ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++static char * ++ngx_http_v2_max_client_body_buffer_size(ngx_conf_t *cf, void *post, ++ void *data) ++{ ++ size_t *sp = data; ++ ++ if (*sp > NGX_HTTP_V2_MAX_CLIENT_BODY_BUFFER_SIZE) { ++ *sp = NGX_HTTP_V2_MAX_CLIENT_BODY_BUFFER_SIZE; ++ } ++ ++ return NGX_CONF_OK; ++} ++#endif +diff -r 7015f26aef90 -r 1739da077a8e src/http/v2/ngx_http_v2_module.h +--- src/http/v2/ngx_http_v2_module.h Wed Jul 29 13:28:04 2020 +0300 ++++ src/http/v2/ngx_http_v2_module.h Wed Aug 26 15:51:41 2020 -0700 +@@ -41,6 +41,10 @@ + + ngx_flag_t push; + ngx_array_t *pushes; ++ ++#if (NGX_HTTP_V2_AUTOTUNE_UPLOAD) ++ size_t max_client_body_buffer_size; ++#endif + } ngx_http_v2_loc_conf_t; Property changes on: head/www/nginx/files/extra-patch-h2-autotune ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property