diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile index e5ae4f01f87d..8f5670fae386 100644 --- a/www/nginx-devel/Makefile +++ b/www/nginx-devel/Makefile @@ -1,366 +1,362 @@ # Created by: Sergey A. Osokin PORTNAME?= nginx -PORTVERSION= 1.21.3 -PORTREVISION= 4 +PORTVERSION= 1.21.4 CATEGORIES= www MASTER_SITES= https://nginx.org/download/ \ LOCAL/osa PKGNAMESUFFIX?= -devel DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER?= osa@FreeBSD.org COMMENT?= Robust and small WWW server LICENSE?= BSD2CLAUSE LICENSE_FILE?= ${WRKSRC}/LICENSE CONFLICTS_INSTALL= nginx PORTSCOUT= limit:^1\.21\.[0-9]* USES= cpe CPE_VENDOR= f5 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-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} \ --with-compat 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= HTTPGRP MAILGRP STREAMGRP # 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_DEGRADATION 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_SSL HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 OPTIONS_GROUP_MAILGRP= MAIL MAIL_IMAP MAIL_POP3 MAIL_SMTP MAIL_SSL OPTIONS_GROUP_STREAMGRP= STREAM STREAM_REALIP STREAM_SSL \ STREAM_SSL_PREREAD -OPTIONS_DEFINE= DEBUG DEBUGLOG DSO FILE_AIO IPV6 KTLS NJS THREADS WWW +OPTIONS_DEFINE= DEBUG DEBUGLOG DSO FILE_AIO IPV6 NJS THREADS WWW OPTIONS_DEFAULT?= DSO FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \ HTTP_DAV HTTP_FLV HTTP_GUNZIP_FILTER HTTP_GZIP_STATIC \ HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_REWRITE \ HTTP_SECURE_LINK HTTP_SLICE HTTP_SSL HTTP_STATUS \ HTTP_SUB HTTPV2 MAIL MAIL_SSL STREAM STREAM_REALIP \ STREAM_SSL STREAM_SSL_PREREAD THREADS WWW -OPTIONS_EXCLUDE=${${OSVERSION} < 1300042:?KTLS:} - OPTIONS_RADIO+= GSSAPI OPTIONS_RADIO_GSSAPI= GSSAPI_HEIMDAL GSSAPI_MIT 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 .for opt in ${OPTIONS_GROUP_STREAMGRP:NSTREAM} ${opt}_IMPLIES= STREAM .endfor 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_HTTPGRP} \ ${OPTIONS_GROUP_MAILGRP} ${OPTIONS_GROUP_STREAMGRP} \ ${OPTIONS_GROUP_THIRDPARTYGRP} .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_DEGRADATION_CONFIGURE_ON= --with-http_degradation_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_REALIP_CONFIGURE_ON= --with-stream_realip_module STREAM_SSL_USES= 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:MPASSENGER} && empty(PORT_OPTIONS:MDEBUG) CONFIGURE_ENV+= OPTIMIZE="yes" CFLAGS+= -DNDEBUG .endif .if ${PORT_OPTIONS:MHTTP_AUTH_KRB5} && (empty(PORT_OPTIONS:MGSSAPI_HEIMDAL) && empty(PORT_OPTIONS:MGSSAPI_MIT)) IGNORE= required at least GSSAPI_HEIMDAL or \ GSSAPI_MIT to be defined. Please do \ 'make config' again .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 ) do-configure-NJS-on: ( cd ${WRKSRC_njs} && ${SETENV} ${CONFIGURE_ENV} ${CONFIGURE_CMD} ) .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}/share/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 diff --git a/www/nginx-devel/Makefile.options.desc b/www/nginx-devel/Makefile.options.desc index 44b8b624769d..66252c898a37 100644 --- a/www/nginx-devel/Makefile.options.desc +++ b/www/nginx-devel/Makefile.options.desc @@ -1,117 +1,116 @@ 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 COOKIE_FLAG_DESC= 3rd party cookie_flag module CT_DESC= 3rd party cert_transparency module (SSL req.) DEBUGLOG_DESC= Enable debug log (--with-debug) DEVEL_KIT_DESC= 3rd party Nginx Development Kit module DRIZZLE_DESC= 3rd party drizzle module DSO_DESC= Enable dynamic modules support DYNAMIC_HC_DESC= 3rd party dynamic_healthcheck module 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.) 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_DEGRADATION_DESC= Enable http_degradation 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= 3rd party 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 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 STREAMGRP_DESC= Modules that require STREAM module STREAM_DESC= Enable stream module STREAM_REALIP_DESC= Enable stream_realip 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 THIRDPARTYGRP_DESC= Third-party modules 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 diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo index 063a66e07f46..0c3e20996083 100644 --- a/www/nginx-devel/distinfo +++ b/www/nginx-devel/distinfo @@ -1,147 +1,147 @@ -TIMESTAMP = 1634653086 -SHA256 (nginx-1.21.3.tar.gz) = 14774aae0d151da350417efc4afda5cce5035056e71894836797e1f6e2d1175a -SIZE (nginx-1.21.3.tar.gz) = 1066609 +TIMESTAMP = 1635865241 +SHA256 (nginx-1.21.4.tar.gz) = d1f72f474e71bcaaf465dcc7e6f7b6a4705e4b1ed95c581af31df697551f3bfe +SIZE (nginx-1.21.4.tar.gz) = 1070260 SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae SIZE (nginx_mogilefs_module-1.0.4.tar.gz) = 11208 SHA256 (nginx_mod_h264_streaming-2.2.7.tar.gz) = 6d974ba630cef59de1f60996c66b401264a345d25988a76037c2856cec756c19 SIZE (nginx_mod_h264_streaming-2.2.7.tar.gz) = 44012 SHA256 (ngx_http_redis-0.3.9.tar.gz) = 21f87540f0a44b23ffa5df16fb3d788bc90803b255ef14f9c26e3847a6f26f46 SIZE (ngx_http_redis-0.3.9.tar.gz) = 13051 SHA256 (ngx_http_response-0.3.tar.gz) = 0835584029f053051c624adbe33a826ab0205c9d85a02af6019e6b57607e9045 SIZE (ngx_http_response-0.3.tar.gz) = 2244 SHA256 (passenger-6.0.11.tar.gz) = ec9cf6673b7a24f606c17ba6b895a3ffb1423ae4874add0cdb29c95ae12b69b4 SIZE (passenger-6.0.11.tar.gz) = 8183414 SHA256 (msva-nginx_ajp_module-fcbb2cc_GH0.tar.gz) = 522e94c59f5783f281d868ede2adf325bf2f8ffb9e62cf8451d4b9ac0516916c SIZE (msva-nginx_ajp_module-fcbb2cc_GH0.tar.gz) = 110807 SHA256 (openresty-array-var-nginx-module-v0.05_GH0.tar.gz) = c949d4be6f3442c8e2937046448dc8d8def25c0e0fa6f4e805144cea45eabe80 SIZE (openresty-array-var-nginx-module-v0.05_GH0.tar.gz) = 11280 SHA256 (anomalizer-ngx_aws_auth-21931b2_GH0.tar.gz) = d8a2422da96a638e9a911e4edb592954d9c0fe1576456fec9809ef4e2a0a863d SIZE (anomalizer-ngx_aws_auth-21931b2_GH0.tar.gz) = 15580 SHA256 (google-ngx_brotli-9aec15e_GH0.tar.gz) = 0177b1158ff7092b9996346de28a0b296dc33addb2af4e8904794d19b4a9a808 SIZE (google-ngx_brotli-9aec15e_GH0.tar.gz) = 16194 SHA256 (torden-ngx_cache_purge-2b977cf_GH0.tar.gz) = 9de7dad5827edf37e803435ee764f6815562053daa0821aedaf539580307ff93 SIZE (torden-ngx_cache_purge-2b977cf_GH0.tar.gz) = 16739 SHA256 (nginx-clojure-nginx-clojure-4b1e964_GH0.tar.gz) = bc41ee5233e5eefba92067499a09ca82a0606036d3b9dd8e550b519674f32761 SIZE (nginx-clojure-nginx-clojure-4b1e964_GH0.tar.gz) = 753436 SHA256 (AirisX-nginx_cookie_flag_module-c4ff449_GH0.tar.gz) = 4b8c1c1e1ed59ed85751f4bd7d68026ad5051103c8b983e05ad17eb0cdab138e SIZE (AirisX-nginx_cookie_flag_module-c4ff449_GH0.tar.gz) = 4713 SHA256 (grahamedgecombe-nginx-ct-93e9884_GH0.tar.gz) = 72fdd125b9207cdda135f368095f85b943a78a4ff004d1cd217972e12b1571b2 SIZE (grahamedgecombe-nginx-ct-93e9884_GH0.tar.gz) = 7224 SHA256 (simpl-ngx_devel_kit-v0.3.1_GH0.tar.gz) = 0e971105e210d272a497567fa2e2c256f4e39b845a5ba80d373e26ba1abfbd85 SIZE (simpl-ngx_devel_kit-v0.3.1_GH0.tar.gz) = 66542 SHA256 (openresty-drizzle-nginx-module-92162d0_GH0.tar.gz) = 54cb4d3e7ef21b7f1d75061dce4084d6986abaa3109722e197e5159d25e30f68 SIZE (openresty-drizzle-nginx-module-92162d0_GH0.tar.gz) = 50888 SHA256 (ZigzagAK-ngx_dynamic_healthcheck-61acf02_GH0.tar.gz) = 9a6ac88bcb85cd76e56ce03cf074a78b600cc787642379f76410e78326aca5aa SIZE (ZigzagAK-ngx_dynamic_healthcheck-61acf02_GH0.tar.gz) = 49810 SHA256 (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 86e7c6ed6dba2d4c5f5b87ecb91f25ccdb7a08b8a88236e632114f830b9e354b SIZE (ZigzagAK-ngx_dynamic_upstream-960eef2_GH0.tar.gz) = 23003 SHA256 (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = bb2a4b1a0e5ffa0203c1be854e663fc92cee0d7b5e0f7a38c0e163ae9124a38f SIZE (openresty-echo-nginx-module-5a402aa_GH0.tar.gz) = 53336 SHA256 (openresty-encrypted-session-nginx-module-v0.08_GH0.tar.gz) = 6e526ea097c6805ec2cf1d0d3d79ed24326bc2d0babe158c29edd07d8c0d106a SIZE (openresty-encrypted-session-nginx-module-v0.08_GH0.tar.gz) = 11802 SHA256 (calio-form-input-nginx-module-v0.12_GH0.tar.gz) = 5c1869d55897075adb3fdf840b21060dc54669a1f840a36d1539acc7e59dd106 SIZE (calio-form-input-nginx-module-v0.12_GH0.tar.gz) = 11090 SHA256 (technowledgy-nginx_http_gridfs_module-7970bab_GH0.tar.gz) = 3c53190c24a578c0d6d340d290cd87f139a651372c78b7518b617a037db60582 SIZE (technowledgy-nginx_http_gridfs_module-7970bab_GH0.tar.gz) = 20495 SHA256 (10gen-archive-mongo-c-driver-legacy-f06669b_GH0.tar.gz) = cbd6b34aadea40b43db431590808a9e12d813f896ad2b1dcffb820872ef97b21 SIZE (10gen-archive-mongo-c-driver-legacy-f06669b_GH0.tar.gz) = 79396 SHA256 (openresty-headers-more-nginx-module-55fbdab_GH0.tar.gz) = ed996dc994ba31ae071e05f12bfac6ff86ee03a2e7d4263346b919870d8135ac SIZE (openresty-headers-more-nginx-module-55fbdab_GH0.tar.gz) = 28139 SHA256 (dvershinin-nginx_accept_language_module-5683967_GH0.tar.gz) = a58feb576f2231498b8a3863d3c6fba45c7d48bc48735fa714e07a7bfbedb6e3 SIZE (dvershinin-nginx_accept_language_module-5683967_GH0.tar.gz) = 3425 SHA256 (atomx-nginx-http-auth-digest-274490c_GH0.tar.gz) = 0839c33c2f8d519f92daae274f62cf87eb68415d562c6500ee3e3721ce80557c SIZE (atomx-nginx-http-auth-digest-274490c_GH0.tar.gz) = 17815 SHA256 (stnoonan-spnego-http-auth-nginx-module-a06f9ef_GH0.tar.gz) = f7b1559e730d75fd0eee82a0aef67e3ab026cc816e0413fb94d51c8ad87df883 SIZE (stnoonan-spnego-http-auth-nginx-module-a06f9ef_GH0.tar.gz) = 18504 SHA256 (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = e76e9e117ad51af578a68fa7a30c256178796bb271fa77f01c93281a92b09921 SIZE (kvspb-nginx-auth-ldap-83c059b_GH0.tar.gz) = 18547 SHA256 (sto-ngx_http_auth_pam_module-v1.5.1_GH0.tar.gz) = 77676842919134af88a7b4bfca4470223e3a00d287d17c0dbdc9a114a685b6e7 SIZE (sto-ngx_http_auth_pam_module-v1.5.1_GH0.tar.gz) = 6863 SHA256 (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = d2499d94d82d4e4eac8425d799e52883131ae86a956524040ff2fd230ef9f859 SIZE (arut-nginx-dav-ext-module-v3.0.0_GH0.tar.gz) = 14558 SHA256 (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 014bedb2b334ba8e8e23b4c660590357f8055dbed7b9b017e4cc2937876a8822 SIZE (openresty-nginx-eval-module-582bd25_GH0.tar.gz) = 14849 SHA256 (aperezdc-ngx-fancyindex-v0.5.1_GH0.tar.gz) = 238bd5521d6c9b55780e6871339a7ea79508b9a6758ad2fa4451f2dfe26d94c9 SIZE (aperezdc-ngx-fancyindex-v0.5.1_GH0.tar.gz) = 28277 SHA256 (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3493b54460c59370f9f60c6e662862752f1920fc6e684f7a66bb2b3260692813 SIZE (alibaba-nginx-http-footer-filter-1.2.2_GH0.tar.gz) = 3934 SHA256 (leev-ngx_http_geoip2_module-3.3_GH0.tar.gz) = 41378438c833e313a18869d0c4a72704b4835c30acaf7fd68013ab6732ff78a7 SIZE (leev-ngx_http_geoip2_module-3.3_GH0.tar.gz) = 8509 SHA256 (ip2location-ip2location-nginx-7aa49ce_GH0.tar.gz) = 588e31def37aacd9afd19f4bf0892e80dcc26e0824f6cce6fa69cf6d44923b29 SIZE (ip2location-ip2location-nginx-7aa49ce_GH0.tar.gz) = 5932 SHA256 (ip2location-ip2proxy-nginx-668288a_GH0.tar.gz) = 67eccaf7e541add8e72e866c23d12b4574d0564905cfe96b5df796cda5b0b65a SIZE (ip2location-ip2proxy-nginx-668288a_GH0.tar.gz) = 4980 SHA256 (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = fdc34e0e712d28f4452ce3858ba05a38cc00703f14502095189c4a1063a36997 SIZE (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = 6736 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343 SHA256 (slact-nchan-v1.2.12_GH0.tar.gz) = 3fd9c51446a65bddabfaf7a0cba8435e3ce6084d0585b6f0eba1a950f14d56a2 SIZE (slact-nchan-v1.2.12_GH0.tar.gz) = 716150 SHA256 (wandenberg-nginx-push-stream-module-0.5.4_GH0.tar.gz) = 5253bb8a804ea679e514137a234637298f044c3ef63c053670bf3802ff3535b1 SIZE (wandenberg-nginx-push-stream-module-0.5.4_GH0.tar.gz) = 183493 SHA256 (yaoweibin-ngx_http_substitutions_filter_module-b8a71ea_GH0.tar.gz) = 08f966328fc1b77e0dbbcacd9532c3905060c20c45b6461b6f2075cd844d0891 SIZE (yaoweibin-ngx_http_substitutions_filter_module-b8a71ea_GH0.tar.gz) = 94039 SHA256 (tarantool-nginx_upstream_module-daccb2a_GH0.tar.gz) = 13db35d213d62eab4524b8b832565cb26c0a726fbdfbbaeeb221cce95b07a32a SIZE (tarantool-nginx_upstream_module-daccb2a_GH0.tar.gz) = 74594 SHA256 (fdintino-nginx-upload-module-aa42509_GH0.tar.gz) = 2285245bdef11656e5bcc866e693e48f84b7443d36924f45a6fb8647cd35319a SIZE (fdintino-nginx-upload-module-aa42509_GH0.tar.gz) = 42221 SHA256 (masterzen-nginx-upload-progress-module-afb2d31_GH0.tar.gz) = 6318851cc3a624aaad3b1f4cd9f51f79c86575c53dfe0c28bbdcf9470b6a33e6 SIZE (masterzen-nginx-upload-progress-module-afb2d31_GH0.tar.gz) = 17269 SHA256 (yaoweibin-nginx_upstream_check_module-9aecf15_GH0.tar.gz) = 4404c64e845e19feeb07a37976347987892a8e8680a961f793ff0d3ef96c07f4 SIZE (yaoweibin-nginx_upstream_check_module-9aecf15_GH0.tar.gz) = 130039 SHA256 (jaygooby-nginx-upstream-fair-10ecdcf_GH0.tar.gz) = 93f71b7cf0db9c6dbf97e3ee11cf8efbc149946c0949d7abd19c74c7620eea50 SIZE (jaygooby-nginx-upstream-fair-10ecdcf_GH0.tar.gz) = 10433 SHA256 (ayty-adrianomartins-nginx-sticky-module-ng-c407e0d_GH0.tar.gz) = ee7d6a6e3f4452388d1e821470c2352c5d42970f756507b878529911e79c1b60 SIZE (ayty-adrianomartins-nginx-sticky-module-ng-c407e0d_GH0.tar.gz) = 120679 SHA256 (Novetta-nginx-video-thumbextractor-module-f5b5bae_GH0.tar.gz) = cb4ecc14bf8503eb73c50ca5e9952ce1f99badbf2e7fdd2346c73d2e7905a5a5 SIZE (Novetta-nginx-video-thumbextractor-module-f5b5bae_GH0.tar.gz) = 34434 SHA256 (rtm-ctrlz-mod_zip-cfd0be4_GH0.tar.gz) = 66e867c9fd311a04f4b69a928441b49b5322d631db650d971abbc55af485cc9c SIZE (rtm-ctrlz-mod_zip-cfd0be4_GH0.tar.gz) = 26113 SHA256 (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = b8b9f355c05c0790226512f6732348a2404d48531688a1fc04ce6768163bf462 SIZE (calio-iconv-nginx-module-v0.14_GH0.tar.gz) = 13133 SHA256 (baysao-nginx-let-module-c1f23aa_GH0.tar.gz) = 7393809d5d8877812da1bd5b5fbd1d8b00bc85e71f2f387c344f007773e49050 SIZE (baysao-nginx-let-module-c1f23aa_GH0.tar.gz) = 20617 SHA256 (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 20c3679199ba7efe1598f03b2fa0b13591226363c8dd7930d7f02702cd5abada SIZE (Taymindis-nginx-link-function-3.2.4_GH0.tar.gz) = 139656 SHA256 (openresty-lua-nginx-module-v0.10.20_GH0.tar.gz) = efeb38afc966dec36a086a99f9b8706b8a343e5e44d75c19bf8f017ea6657313 SIZE (openresty-lua-nginx-module-v0.10.20_GH0.tar.gz) = 668516 SHA256 (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 8c2bdbe875e4f5225d0778bfb09a2668f9281d7de6218c7b462a7ba2cee06fe8 SIZE (openresty-memc-nginx-module-v0.19_GH0.tar.gz) = 34654 SHA256 (SpiderLabs-ModSecurity-nginx-v1.0.2_GH0.tar.gz) = f8d3ff15520df736c5e20e91d5852ec27e0874566c2afce7dcb979e2298d6980 SIZE (SpiderLabs-ModSecurity-nginx-v1.0.2_GH0.tar.gz) = 33767 SHA256 (nbs-system-naxsi-1.3_GH0.tar.gz) = 439c8677372d2597b4360bbcc10bc86490de1fc75695b193ad5df154a214d628 SIZE (nbs-system-naxsi-1.3_GH0.tar.gz) = 235626 SHA256 (nginx-njs-0.7.0_GH0.tar.gz) = 3f0fe7d77600a9c54000ce101dd51f44811964502641ae505e38c1bbf595e6f1 SIZE (nginx-njs-0.7.0_GH0.tar.gz) = 575477 SHA256 (opentracing-contrib-nginx-opentracing-842d21f_GH0.tar.gz) = d15d5d4caa2b864fb820c9c6e373adb3eab10cfe2e5a39e98727245db4cc92c4 SIZE (opentracing-contrib-nginx-opentracing-842d21f_GH0.tar.gz) = 676206 SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b SIZE (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = 48544 SHA256 (openresty-rds-csv-nginx-module-v0.09_GH0.tar.gz) = 896be99c0cad50218417800a159e43ec088d6b58c099472ed3b3d7f179d6c0ea SIZE (openresty-rds-csv-nginx-module-v0.09_GH0.tar.gz) = 20531 SHA256 (openresty-rds-json-nginx-module-v0.15_GH0.tar.gz) = eaf18f60e981ea2442a7902689a26eba6cf6f36ebee712feeb1f4429eb654bdc SIZE (openresty-rds-json-nginx-module-v0.15_GH0.tar.gz) = 34744 SHA256 (openresty-redis2-nginx-module-v0.15_GH0.tar.gz) = d255571bcfb9939b78099df39cb4d42f174d789aec8c8e5e47b93942b0299438 SIZE (openresty-redis2-nginx-module-v0.15_GH0.tar.gz) = 25471 SHA256 (arut-nginx-rtmp-module-v1.2.2_GH0.tar.gz) = 07f19b7bffec5e357bb8820c63e5281debd45f5a2e6d46b1636d9202c3e09d78 SIZE (arut-nginx-rtmp-module-v1.2.2_GH0.tar.gz) = 519934 SHA256 (openresty-set-misc-nginx-module-3937e7b_GH0.tar.gz) = cb3a4675ab6b8741e5847cf5bc41ee3f6ec5cbceec53188f9ae96e48feea17c5 SIZE (openresty-set-misc-nginx-module-3937e7b_GH0.tar.gz) = 29335 SHA256 (sflow-nginx-sflow-module-543c72a_GH0.tar.gz) = 95efdb1f6cfd6c32c577707f693eb6795c6f21ae062842bf84fe762d8b842955 SIZE (sflow-nginx-sflow-module-543c72a_GH0.tar.gz) = 29504 SHA256 (nginx-shib-nginx-http-shibboleth-2e99740_GH0.tar.gz) = 5a75aeb801331abafd05b512490ab6074fb59c8e88ea3159200de0ae083a4813 SIZE (nginx-shib-nginx-http-shibboleth-2e99740_GH0.tar.gz) = 23241 SHA256 (baysao-ngx_slowfs_cache-d011a18_GH0.tar.gz) = 6ae8abb01a2aff788e75ec68621cb0159148a6f73730a84b30b0bdbc6cdc1758 SIZE (baysao-ngx_slowfs_cache-d011a18_GH0.tar.gz) = 11186 SHA256 (kawakibi-ngx_small_light-2f5e1d0_GH0.tar.gz) = bb7b4943a2db89a6a7020850db123a9e0bea784aa6ce14261aa5f7121f96c3f4 SIZE (kawakibi-ngx_small_light-2f5e1d0_GH0.tar.gz) = 57160 SHA256 (openresty-srcache-nginx-module-v0.32_GH0.tar.gz) = fd80e59b672e4ff3b4e943740b3facab421c6965226b5934aed16a514baacf47 SIZE (openresty-srcache-nginx-module-v0.32_GH0.tar.gz) = 49891 SHA256 (kaltura-nginx-vod-module-1.27_GH0.tar.gz) = b7f0e2eecbcdb8ed1f8c90eb86c756f563fc5d21768a351abe4de63f3ddf01d6 SIZE (kaltura-nginx-vod-module-1.27_GH0.tar.gz) = 450777 SHA256 (vozlt-nginx-module-vts-v0.1.18_GH0.tar.gz) = 17ea41d4083f6d1ab1ab83dad9160eeca66867abe16c5a0421f85a39d7c84b65 SIZE (vozlt-nginx-module-vts-v0.1.18_GH0.tar.gz) = 380327 SHA256 (tg123-websockify-nginx-module-c11bc9a_GH0.tar.gz) = aca454bffcee2476dc92682ebfb8c0378a271fda178be7e945d648419d220758 SIZE (tg123-websockify-nginx-module-c11bc9a_GH0.tar.gz) = 14646 SHA256 (openresty-xss-nginx-module-v0.06_GH0.tar.gz) = 0b12bbc53a41f3e3d6df419c173b8c87434be3e6cd255a8193aa91345a2de6cf SIZE (openresty-xss-nginx-module-v0.06_GH0.tar.gz) = 12448 diff --git a/www/nginx-devel/files/extra-patch-ktls b/www/nginx-devel/files/extra-patch-ktls deleted file mode 100644 index 52c40f53933c..000000000000 --- a/www/nginx-devel/files/extra-patch-ktls +++ /dev/null @@ -1,312 +0,0 @@ -From 11ad5d15c487ecc0a37f9747bb4bfa5bb96893c1 Mon Sep 17 00:00:00 2001 -From: John Baldwin -Date: Thu, 22 Aug 2019 12:18:32 -0700 -Subject: [PATCH] Add support for using SSL_sendfile from OpenSSL. - -This uses kernel TLS on systems supported by OpenSSL to send -files via sendfile() over TLS connections. ---- - auto/lib/openssl/conf | 8 ++ - src/event/ngx_event_openssl.c | 172 ++++++++++++++++++++++++++++++++++ - src/event/ngx_event_openssl.h | 7 ++ - src/http/ngx_http_request.c | 14 ++- - src/http/ngx_http_upstream.c | 5 + - 5 files changed, 203 insertions(+), 3 deletions(-) - -diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf -index 4fb52df7fe..c4772248ae 100644 ---- a/auto/lib/openssl/conf -+++ b/auto/lib/openssl/conf -@@ -123,6 +123,14 @@ else - CORE_INCS="$CORE_INCS $ngx_feature_path" - CORE_LIBS="$CORE_LIBS $ngx_feature_libs" - OPENSSL=YES -+ -+ ngx_feature="SSL_sendfile()" -+ ngx_feature_name="NGX_SSL_SENDFILE" -+ ngx_feature_run=no -+ ngx_feature_test="SSL *ssl; -+ (void)BIO_get_ktls_send(SSL_get_wbio(ssl)); -+ SSL_sendfile(ssl, -1, 0, 0, 0);" -+ . auto/feature - fi - fi - -diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c -index 93a6ae46ea..04759827fc 100644 ---- a/src/event/ngx_event_openssl.c -+++ b/src/event/ngx_event_openssl.c -@@ -52,6 +52,10 @@ static void ngx_ssl_shutdown_handler(ngx_event_t *ev); - static void ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, - ngx_err_t err, char *text); - static void ngx_ssl_clear_error(ngx_log_t *log); -+#if (NGX_SSL_SENDFILE) -+static ssize_t ngx_ssl_sendfile(ngx_connection_t *c, int fd, off_t off, -+ size_t size, int flags); -+#endif - - static ngx_int_t ngx_ssl_session_id_context(ngx_ssl_t *ssl, - ngx_str_t *sess_ctx, ngx_array_t *certificates); -@@ -1712,7 +1716,11 @@ ngx_ssl_handshake(ngx_connection_t *c) - c->recv = ngx_ssl_recv; - c->send = ngx_ssl_write; - c->recv_chain = ngx_ssl_recv_chain; -+#if (NGX_SSL_SENDFILE) -+ c->send_chain = ngx_ssl_sendfile_chain; -+#else - c->send_chain = ngx_ssl_send_chain; -+#endif - - #ifndef SSL_OP_NO_RENEGOTIATION - #if OPENSSL_VERSION_NUMBER < 0x10100000L -@@ -1741,6 +1749,13 @@ ngx_ssl_handshake(ngx_connection_t *c) - - c->ssl->handshaked = 1; - -+#if (NGX_SSL_SENDFILE) -+ c->ssl->can_use_sendfile = !!BIO_get_ktls_send(SSL_get_wbio(c->ssl->connection)); -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, -+ "BIO_get_ktls_send: %d", c->ssl->can_use_sendfile); -+ c->sendfile = c->ssl->can_use_sendfile ? 1 : 0; -+#endif -+ - return NGX_OK; - } - -@@ -2609,6 +2624,163 @@ ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) - return in; - } - -+#if (NGX_SSL_SENDFILE) -+ngx_chain_t * -+ngx_ssl_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) -+{ -+ int can_use_sendfile; -+ ssize_t n; -+ -+ can_use_sendfile = BIO_get_ktls_send(SSL_get_wbio(c->ssl->connection)); -+ -+ ngx_log_debug5(NGX_LOG_DEBUG_EVENT, c->log, 0, -+ "Sending chain %p can_use_sendfile:%d c->sendfile:%d " \ -+ "c->ssl->buffer:%d limit:%O", -+ in, can_use_sendfile, c->sendfile, c->ssl->buffer, limit); -+ -+ if (! (can_use_sendfile && c->sendfile) || c->ssl->buffer) { -+ return ngx_ssl_send_chain(c, in, limit); -+ } -+ -+ /* the maximum limit size is the maximum int32_t value - the page size */ -+ if (limit == 0 || limit > (off_t) (NGX_MAX_INT32_VALUE - ngx_pagesize)) { -+ limit = NGX_MAX_INT32_VALUE - ngx_pagesize; -+ } -+ -+ while (in) { -+ if (ngx_buf_special(in->buf)) { -+ in = in->next; -+ continue; -+ } -+ -+ if (in->buf->in_file) { -+ ngx_chain_t *cl; -+ int sendfile_flags; -+ off_t sendfile_size; -+ -+ cl = in; -+#ifdef __FreeBSD__ -+ sendfile_flags = /* in->buf->sendfile_flags |*/ SF_NODISKIO; -+#else -+ sendfile_flags = in->buf->sendfile_flags; -+#endif -+ sendfile_size = ngx_chain_coalesce_file(&cl, limit); -+ -+ n = ngx_ssl_sendfile(c, in->buf->file->fd, in->buf->file_pos, -+ sendfile_size, sendfile_flags); -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, -+ "ngx_ssl_sendfile returns:%z", n); -+ } else { -+ n = ngx_ssl_write(c, in->buf->pos, in->buf->last - in->buf->pos); -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, -+ "ngx_ssl_write returns:%z", n); -+ } -+ -+ if (n == NGX_ERROR) { -+ return NGX_CHAIN_ERROR; -+ } -+ if (n == NGX_AGAIN) { -+ return in; -+ } -+ if (n == NGX_BUSY) { -+ c->busy_count = 1; -+ c->write->delayed = 1; -+ ngx_add_timer(c->write, 10); -+ return in; -+ } -+ -+ in = ngx_chain_update_sent(in, (off_t) n); -+ } -+ -+ return in; -+} -+ -+static ssize_t -+ngx_ssl_sendfile(ngx_connection_t *c, int fd, off_t off, size_t size, int flags) -+{ -+ int n, sslerr; -+ ngx_err_t err; -+ -+ ngx_ssl_clear_error(c->log); -+ -+ ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, -+ "SSL to sendfile: %uz at %O with %Xd", size, off, flags); -+ -+ n = SSL_sendfile(c->ssl->connection, fd, off, size, flags); -+ -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_sendfile: %d", n); -+ -+ if (n > 0) { -+ -+ if (c->ssl->saved_read_handler) { -+ -+ c->read->handler = c->ssl->saved_read_handler; -+ c->ssl->saved_read_handler = NULL; -+ c->read->ready = 1; -+ -+ if (ngx_handle_read_event(c->read, 0) != NGX_OK) { -+ return NGX_ERROR; -+ } -+ -+ ngx_post_event(c->read, &ngx_posted_events); -+ } -+ -+ c->sent += n; -+ -+ return n; -+ } -+ -+ sslerr = SSL_get_error(c->ssl->connection, n); -+ -+#ifdef __FreeBSD__ -+ if (sslerr == SSL_ERROR_WANT_WRITE && ngx_errno == EBUSY) { -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "bioerr=NGX_EBUSY, sslerr=%d", sslerr); -+ return NGX_BUSY; -+ } -+#endif -+ -+ err = (sslerr == SSL_ERROR_SYSCALL) ? ngx_errno : 0; -+ -+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d", sslerr); -+ -+ if (sslerr == SSL_ERROR_WANT_WRITE) { -+ c->write->ready = 0; -+ return NGX_AGAIN; -+ } -+ -+ if (sslerr == SSL_ERROR_WANT_READ) { -+ -+ ngx_log_error(NGX_LOG_INFO, c->log, 0, -+ "peer started SSL renegotiation"); -+ -+ c->read->ready = 0; -+ -+ if (ngx_handle_read_event(c->read, 0) != NGX_OK) { -+ return NGX_ERROR; -+ } -+ -+ /* -+ * we do not set the timer because there is already -+ * the write event timer -+ */ -+ -+ if (c->ssl->saved_read_handler == NULL) { -+ c->ssl->saved_read_handler = c->read->handler; -+ c->read->handler = ngx_ssl_read_handler; -+ } -+ -+ return NGX_AGAIN; -+ } -+ -+ c->ssl->no_wait_shutdown = 1; -+ c->ssl->no_send_shutdown = 1; -+ c->write->error = 1; -+ -+ ngx_ssl_connection_error(c, sslerr, err, "SSL_sendfile() failed"); -+ -+ return NGX_ERROR; -+} -+#endif - - ssize_t - ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size) -diff --git a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h -index 329760d093..233b7f20c8 100644 ---- a/src/event/ngx_event_openssl.h -+++ b/src/event/ngx_event_openssl.h -@@ -106,6 +106,9 @@ struct ngx_ssl_connection_s { - unsigned in_ocsp:1; - unsigned early_preread:1; - unsigned write_blocked:1; -+#if (NGX_SSL_SENDFILE) -+ unsigned can_use_sendfile:1; -+#endif - }; - - -@@ -289,6 +292,10 @@ ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size); - ssize_t ngx_ssl_recv_chain(ngx_connection_t *c, ngx_chain_t *cl, off_t limit); - ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in, - off_t limit); -+#if (NGX_SSL_SENDFILE) -+ngx_chain_t *ngx_ssl_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, -+ off_t limit); -+#endif - void ngx_ssl_free_buffer(ngx_connection_t *c); - ngx_int_t ngx_ssl_shutdown(ngx_connection_t *c); - void ngx_cdecl ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, -diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c -index 68d81e9320..e4a922a83a 100644 ---- a/src/http/ngx_http_request.c -+++ b/src/http/ngx_http_request.c -@@ -608,7 +608,10 @@ ngx_http_alloc_request(ngx_connection_t *c) - - #if (NGX_HTTP_SSL) - if (c->ssl) { -- r->main_filter_need_in_memory = 1; -+#if (NGX_SSL_SENDFILE) -+ if (c->ssl->can_use_sendfile == 0) -+#endif -+ r->main_filter_need_in_memory = 1; - } - #endif - -@@ -747,8 +750,13 @@ ngx_http_ssl_handshake(ngx_event_t *rev) - sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, - ngx_http_ssl_module); - -- if (ngx_ssl_create_connection(&sscf->ssl, c, NGX_SSL_BUFFER) -- != NGX_OK) -+ if (ngx_ssl_create_connection(&sscf->ssl, c, -+#if (NGX_SSL_SENDFILE) -+ 0 -+#else -+ NGX_SSL_BUFFER -+#endif -+ ) != NGX_OK) - { - ngx_http_close_connection(c); - return; -diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c -index 9cbb5a3b0c..f93f2ae244 100644 ---- a/src/http/ngx_http_upstream.c -+++ b/src/http/ngx_http_upstream.c -@@ -1715,6 +1715,11 @@ ngx_http_upstream_ssl_init_connection(ngx_http_request_t *r, - return; - } - -+#if (NGX_SSL_SENDFILE) -+ c->sendfile = 0; -+ u->output.sendfile = 0; -+#endif -+ - ngx_http_upstream_ssl_handshake(r, u, c); - } -