Index: head/Mk/Uses/apache.mk =================================================================== --- head/Mk/Uses/apache.mk (revision 542071) +++ head/Mk/Uses/apache.mk (revision 542072) @@ -1,433 +1,437 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # $FreeBSD$ # # apache.mk - Apache related macros. # Author: Clement Laforet # Author: Olli Hauer # Author: Bernard Spil # # Please view me with 4 column tabs! # Feature: apache # Usage: USES=apache or USES=apache:args # Valid args: , build, run, server # # version If your port requires a specific Apache httpd version, you can # set this to [min]-[max] or min+ or -max or an explicit version # # USES=apache:2.2 # Only use Apache 2.2 # USES=apache:2.4+ # Use Apache 2.4 or newer # USES=apache:2.2-2.4 # Use Apache 2.2 or 2.4 # USES=apache:-2.4 # Use Apache 2.4 or earlier # USES=apache # Use the default apache version # # Valid version numbers are specified in the variable # APACHE_SUPPORTED_VERSIONS below # # build Indicates that Apache is needed at build time and adds it to # BUILD_DEPENDS. # run Indicates that Apache is needed at run time and adds it to # RUN_DEPENDS. # server Indicates that the port is a server port. # # If build and run are omitted, Apache will be added as BUILD_DEPENDS and # RUN_DEPENDS # # Variables, which can be set by the port: # # AP_FAST_BUILD automatic module build # # AP_GENPLIST automatic PLIST generation plus add # the module disabled into httpd.conf # (only if no pkg-plist exist) # # MODULENAME Name of the Apache module # default: ${PORTNAME} # SHORTMODNAME Short name of the Apache module # default: ${MODULENAME:S/mod_//} # SRC_FILE Source file of the APACHE MODULE # default: ${MODULENAME}.c # # Variables, for internal use by the Apache ports framework only # The following values for USE_APACHE are reserved and only valid # in apache-server ports! # USES= apache:server,2.2 # # # The following variables can be read by ports and must not be modified # # APACHE_VERSION The major-minor release version of the chosen # Apache server, e.g. 2.2 or 2.4 # # APACHEETCDIR Location of the Apache configuration directory # Default: ${LOCALBASE}/etc/apache24 # # APACHEINCLUDEDIR Location of the Apache include files # Default: ${LOCALBASE}/include/apache24 # # APACHEMODDIR Location of the Apache modules # Default: ${LOCALBASE}/libxexec/apache24 # # APACHE_DEFAULT Default Apache version # .if !defined(_INCLUDE_USES_APACHE_PRE_MK) _INCLUDE_USES_APACHE_PRE_MK= yes _USES_POST+= apache # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. _APACHE_SUPPORTED_VERSIONS= 2.4 2.2 2.5 # preferred version first # Print warnings _ERROR_MSG= : Error from apache.mk. # Important Note: # The "+" sign is only valid as last sign, not between # two versions or in combination with range! .if defined(apache_ARGS) && !empty(apache_ARGS) # Preserve original arguments list _APACHE_ARGS= ${apache_ARGS} . if ${_APACHE_ARGS:Mserver} || ${_APACHE_ARGS:Mcommon} _APACHE_PORT_IS_SERVER= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nserver} . endif . if ${_APACHE_ARGS:Mbuild} _APACHE_BUILD_DEP= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nbuild} . endif . if ${_APACHE_ARGS:Mrun} _APACHE_RUN_DEP= yes _APACHE_ARGS:= ${_APACHE_ARGS:Nrun} . endif . if empty(_APACHE_ARGS) _APACHE_ARGS= ${APACHE_DEFAULT} . endif # _APACHE_ARGS must now contain a version(-range) . if !empty(_APACHE_ARGS:C/^2\.[0-9]//:S/^-//:C/^2\.[0-9]//:C/\+$//) IGNORE= ${_ERROR_MSG} Illegal use of USES= ${USES:Mapache*} # Catch USES= apache:[min]-[max]+ . elif ${apache_ARGS:C/[.a-z0-9]//g} == "-+" IGNORE= ${_ERROR_MSG} Illegal use of USES= ${USES:Mapache*} . endif .endif # defined(apache_ARGS) # The port does not specify a build, run or server dependency, assume both # build and run are required. .if !defined(_APACHE_BUILD_DEP) && !defined(_APACHE_RUN_DEP) && \ !defined(_APACHE_PORT_IS_SERVER) _APACHE_BUILD_DEP= yes _APACHE_RUN_DEP= yes .endif .if defined(DEFAULT_APACHE_VER) IGNORE+= "DEFAULT_APACHE_VER is defined, consider using DEFAULT_VERSIONS+=apache=${DEFAULT_APACHE_VER} instead" .endif .if defined(WITH_MODULES) || defined(WITHOUT_MODULES) IGNORE= ${_ERROR_MSG} WITH(OUT)_MODULES has been removed, use www_${PORTNAME}_(UN)SET .endif # =============================================================== .if defined(_APACHE_PORT_IS_SERVER) # Module selection .for category in ${DEFAULT_MODULES_CATEGORIES} DEFAULT_MODULES+= ${${category}_MODULES} .endfor .for category in ${ALL_MODULES_CATEGORIES} AVAILABLE_MODULES+= ${${category}_MODULES} .endfor # OPTIONS handling .for module in ${AVAILABLE_MODULES} . if ${PORT_OPTIONS:M${module}} _APACHE_ENABLED_MODS+= ${module} . else _APACHE_DISABLED_MODS+= ${module} . endif .endfor .if !defined(WITH_STATIC_APACHE) CONFIGURE_ARGS+= --enable-so .else CONFIGURE_ARGS+= --disable-so WITH_ALL_STATIC_MODULES= yes .endif .if ${PORT_OPTIONS:MSUEXEC} _APACHE_ENABLED_MODS+= ${SUEXEC_MODULES} SUEXEC_CONFARGS= with-suexec # SUEXEC_DOCROOT should exist SUEXEC_DOCROOT?= ${PREFIX}/www/data #SUEXEC_DOCROOT?= ${WWWDIR} SUEXEC_USERDIR?= public_html # avoid duplicate search paths .if ${LOCALBASE} == ${PREFIX} SUEXEC_SAFEPATH?= ${LOCALBASE}/bin:/usr/bin:/bin .else SUEXEC_SAFEPATH?= ${PREFIX}/bin:${LOCALBASE}/bin:/usr/bin:/bin .endif SUEXEC_LOGFILE?= /var/log/httpd-suexec.log SUEXEC_UIDMIN?= 1000 SUEXEC_GIDMIN?= 1000 SUEXEC_CALLER?= ${WWWOWN} CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-caller=${SUEXEC_CALLER} \ --${SUEXEC_CONFARGS}-uidmin=${SUEXEC_UIDMIN} \ --${SUEXEC_CONFARGS}-gidmin=${SUEXEC_GIDMIN} \ --${SUEXEC_CONFARGS}-userdir="${SUEXEC_USERDIR}" \ --${SUEXEC_CONFARGS}-docroot="${SUEXEC_DOCROOT}" \ --${SUEXEC_CONFARGS}-safepath="${SUEXEC_SAFEPATH}" \ - --${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" \ --${SUEXEC_CONFARGS}-bin="${PREFIX}/sbin/suexec" . if defined(WITH_SUEXEC_UMASK) CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-umask=${SUEXEC_UMASK} . endif + +. if !${PORT_OPTIONS:MSUEXEC_SYSLOG} +CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" +. endif + .endif .if !defined(_APACHE_DISABLED_MODS) APACHE_MODULES= ${_APACHE_ENABLED_MODS} .else .for module in ${_APACHE_ENABLED_MODS:O:u} . if !${_APACHE_DISABLED_MODS:M${module}} APACHE_MODULES+= ${module} . endif .endfor .endif .if defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES) WITH_STATIC_MODULES= ${APACHE_MODULES} .endif .for module in ${AVAILABLE_MODULES} . if !empty(WITH_STATIC_MODULES:M${module}) CONFIGURE_ARGS+= --enable-${module:tl}=static PLIST_SUB+= MOD_${module}="@comment " . elif !empty(APACHE_MODULES:M${module}) CONFIGURE_ARGS+= --enable-${module:tl}=shared PLIST_SUB+= MOD_${module}="" . else CONFIGURE_ARGS+= --disable-${module:tl} PLIST_SUB+= MOD_${module}="@comment " . endif .endfor # pkg-plist workaround STATIC support .if ${PORT_OPTIONS:MSUEXEC} PLIST_SUB+= SUEXEC="" .else PLIST_SUB+= SUEXEC="@comment " .endif .if ${PORT_OPTIONS:MLOG_FORENSIC} PLIST_SUB+= FORENSIC="" .else PLIST_SUB+= FORENSIC="@comment " .endif #### End of _APACHE_PORT_IS_SERVER #### # =============================================================== .else HTTPD?= ${LOCALBASE}/sbin/httpd MODULENAME?= ${PORTNAME} SHORTMODNAME?= ${MODULENAME:S/mod_//} SRC_FILE?= ${MODULENAME}.c .if exists(${HTTPD}) _APACHE_VERSION!= ${HTTPD} -v | ${SED} -ne 's/^Server version: Apache\/\([1-9]\.[0-9]*\).*/\1/p' .endif # Validate Apache version whether it meets the version restriction. _APACHE_VERSION_CHECK:= ${_APACHE_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} _APACHE_VERSION_MIN_TMP:= ${_APACHE_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} _APACHE_VERSION_MIN:= ${_APACHE_VERSION_MIN_TMP:M[1-9].[0-9]} _APACHE_VERSION_MAX_TMP:= ${_APACHE_VERSION_CHECK:C/.*-([1-9]\.[0-9])/\1/} _APACHE_VERSION_MAX:= ${_APACHE_VERSION_MAX_TMP:M[1-9].[0-9]} # Remove from _WANTED_VERSIONS that which is not wanted _APACHE_WANTED_VERSIONS= ${_APACHE_SUPPORTED_VERSIONS} .for _ver in ${_APACHE_SUPPORTED_VERSIONS:O} . if !empty(_APACHE_VERSION_MIN) && ${_ver} < ${_APACHE_VERSION_MIN} _APACHE_WANTED_VERSIONS:= ${_APACHE_WANTED_VERSIONS:N${_ver}} . endif . if !empty(_APACHE_VERSION_MAX) && ${_ver} > ${_APACHE_VERSION_MAX} _APACHE_WANTED_VERSIONS:= ${_APACHE_WANTED_VERSIONS:N${_ver}} . endif .endfor # Check if installed Apache version matches a wanted version .if defined(_APACHE_VERSION) && $(_APACHE_WANTED_VERSIONS:M${_APACHE_VERSION}) _APACHE_WANTED_VERSION= ${_APACHE_VERSION} .endif # Select Apache version if not already set .for _ver in ${APACHE_DEFAULT} ${_APACHE_SUPPORTED_VERSIONS} . if !defined(_APACHE_WANTED_VERSION) && ${_APACHE_WANTED_VERSIONS:M${_ver}} _APACHE_WANTED_VERSION= ${_ver} . endif .endfor APACHE_VERSION:= ${_APACHE_WANTED_VERSION} .if defined(_APACHE_VERSION) && ${_APACHE_VERSION} != ${APACHE_VERSION} BROKEN= ${_ERROR_MSG} Apache ${_APACHE_VERSION} is installed and port requires ${_APACHE_WANTED_VERSION} .endif .if ${APACHE_VERSION} >= 2.5 APXS?= ${LOCALBASE}/bin/apxs .else APXS?= ${LOCALBASE}/sbin/apxs .endif .if exists(${APXS}) APXS_PREFIX!= ${APXS} -q prefix 2> /dev/null || echo NULL . if ${APXS_PREFIX} == NULL IGNORE= : Your apache does not support DSO modules . endif . if defined(AP_GENPLIST) && ${APXS_PREFIX} != ${PREFIX} IGNORE?= PREFIX must be equal to APXS_PREFIX. . endif .endif APACHEMODDIR= libexec/apache${APACHE_VERSION:S/.//} APACHEINCLUDEDIR= include/apache${APACHE_VERSION:S/.//} APACHEETCDIR= etc/apache${APACHE_VERSION:S/.//} .if ${APACHE_VERSION} == 2.5 _APACHE_PORT?= www/apache${APACHE_VERSION:S/.//}-devel .else _APACHE_PORT?= www/apache${APACHE_VERSION:S/.//} .endif PLIST_SUB+= APACHEMODDIR="${APACHEMODDIR}" \ APACHEINCLUDEDIR="${APACHEINCLUDEDIR}" \ APACHEETCDIR="${APACHEETCDIR}" \ APACHE_VERSION="${APACHE_VERSION}" SUB_LIST+= APACHEMODDIR="${APACHEMODDIR}" \ APACHEETCDIR="${APACHEETCDIR}" \ APACHE_VERSION="${APACHE_VERSION}" APACHE_PKGNAMEPREFIX= ap${APACHE_VERSION:S/.//}- .if defined(AP_FAST_BUILD) PKGNAMEPREFIX?= ${APACHE_PKGNAMEPREFIX} .endif .if defined(_APACHE_BUILD_DEP) BUILD_DEPENDS+= ${APXS}:${_APACHE_PORT} .endif .if defined(_APACHE_RUN_DEP) RUN_DEPENDS+= ${APXS}:${_APACHE_PORT} .endif PLIST_SUB+= AP_NAME="${SHORTMODNAME}" PLIST_SUB+= AP_MODULE="${MODULENAME}.so" .if defined(AP_GENPLIST) PLIST?= ${WRKDIR}/ap-plist .endif .if defined(AP_INC) AP_EXTRAS+= -I ${AP_INC} .endif .if defined(AP_LIB) AP_EXTRAS+= -L ${AP_LIB} .endif .endif # End of _APACHE_PORT_IS_SERVER / _APACHE_PORT_IS_MOULE .endif # End of !_INCLUDE_USES_APACHE_PRE_MK # =============================================================== .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_APACHE_POST_MK) _INCLUDE_USES_APACHE_POST_MK= apache.mk .if defined(NO_BUILD) && !defined(_APACHE_RUN_DEP) BROKEN= If NO_BUILD is used, then apache:run is sufficient. Please fix your Makefile .endif .if defined(_APACHE_PORT_IS_SERVER) .if !target(print-closest-mirrors) print-closest-mirrors: @${ECHO_MSG} -n "Fetching list of nearest mirror: " >&2 @MIRRORS=`${FETCH_CMD} -T 30 -qo - http://www.apache.org/dyn/closer.cgi/httpd/ 2> /dev/null\ | ${GREP} /httpd/ | ${SED} 's/.*href="\(.*\)">&2; if [ "x$$MIRRORS" != "x" ]; then \ ${ECHO_MSG} -n "MASTER_SITE_APACHE_HTTPD?= ";\ ${ECHO_MSG} $$MIRRORS; else \ ${ECHO_MSG} "No mirrors found!">&2 ; fi .endif .if !target(show-modules) show-modules: .if !empty(APACHE_MODULES) .for module in ${AVAILABLE_MODULES} @${PRINTF} "%-20s : " ${module} . if ${APACHE_MODULES:M${module}} @${ECHO} -n "enabled " . if !empty(WITH_STATIC_MODULES) && ${WITH_STATIC_MODULES:M${module}} @${ECHO_CMD} " (static)" . else @${ECHO_CMD} "(shared)" . endif . else @${ECHO_CMD} disabled . endif .endfor .else .for module in ${AVAILABLE_MODULES} @${PRINTF} "%-20s : disabled\n" ${module} .endfor .endif .endif .else .if defined(AP_MODENABLE) AP_MOD_EN= -a .else AP_MOD_EN= -A .endif PLIST_SUB+= AP_MOD_EN="${AP_MOD_EN}" .if defined(AP_FAST_BUILD) .if !target(ap-gen-plist) _USES_build+= 490:ap-gen-plist ap-gen-plist: .if defined(AP_GENPLIST) . if !exists(${PLIST}) @${ECHO} "===> Generating apache plist" @${ECHO} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST} @${ECHO} "@postexec %D/sbin/apxs -e ${AP_MOD_EN} -n %%AP_NAME%% %D/%F" >> ${PLIST} @${ECHO} "@postunexec ${SED} -i '' -E '/LoadModule[[:blank:]]+%%AP_NAME%%_module/d' %D/%%APACHEETCDIR%%/httpd.conf" >> ${PLIST} @${ECHO} "@postunexec echo \"Don't forget to remove all ${MODULENAME}-related directives in your httpd.conf\"">> ${PLIST} . endif .endif .endif .if !target(do-build) do-build: (cd ${WRKSRC} && ${APXS} -c ${AP_EXTRAS} -o ${MODULENAME}.la ${SRC_FILE}) .endif .if !target(do-install) do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} ${APXS} -S LIBEXECDIR=${STAGEDIR}${PREFIX}/${APACHEMODDIR} -i -n ${SHORTMODNAME} ${WRKSRC}/${MODULENAME}.la . if !defined(DEBUG) @${ECHO_MSG} "===> strip ${APACHEMODDIR}/${MODULENAME}.so" @[ -e ${STAGEDIR}${PREFIX}/${APACHEMODDIR}/${MODULENAME}.so ] && ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${APACHEMODDIR}/${MODULENAME}.so . else @${ECHO_MSG} "===> DEBUG is set, will not strip ${APACHEMODDIR}/${MODULENAME}.so" . endif .endif .endif # defined(AP_FAST_BUILD) .endif # defined(_APACHE_PORT_IS_SERVER / _APACHE_PORT_IS_MODULE) .endif # defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_APACHE_PRE_MK) Index: head/www/apache24/Makefile =================================================================== --- head/www/apache24/Makefile (revision 542071) +++ head/www/apache24/Makefile (revision 542072) @@ -1,241 +1,242 @@ # $FreeBSD$ PORTNAME= apache24 PORTVERSION= 2.4.43 PORTREVISION= 0 CATEGORIES= www MASTER_SITES= APACHE_HTTPD DISTNAME= httpd-${PORTVERSION} DIST_SUBDIR= apache24 MAINTAINER= apache@FreeBSD.org COMMENT= Version 2.4.x of Apache web server LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libexpat.so:textproc/expat2 \ libapr-1.so:devel/apr1 \ libpcre.so:devel/pcre USES= apache:server,2.4 autoreconf compiler:c11 cpe iconv libtool perl5 tar:bzip2 USE_PERL5= run USE_RC_SUBR= apache24 htcacheclean GNU_CONFIGURE= yes CPE_VENDOR= apache CPE_PRODUCT= http_server PORTDOCS= * SUB_FILES= pkg-install pkg-deinstall # Fallback MPM after switching from static to modular MPM SUB_LIST+= MPMF="000_mpm_prefork_fallback.conf" USERS= www GROUPS= www .include "${.CURDIR}/Makefile.options" .include "${.CURDIR}/Makefile.options.desc" OPTIONS_SUB= yes # IMPLIES AUTHN_DBD_IMPLIES= DBD HEARTBEAT_IMPLIES= WATCHDOG STATUS HEARTMONITOR_IMPLIES= WATCHDOG STATUS LBMETHOD_HEARTBEAT_IMPLIES= WATCHDOG STATUS HEARTMONITOR PROXY_HCHECK_IMPLIES= WATCHDOG PROXY_HTTP2_IMPLIES= PROXY_BALANCER .for module in ${PROXY_ENABLED_MODULES:NPROXY} ${PROXY_DISABLED_MODULES} ${module}_IMPLIES= PROXY .endfor .for module in ${SESSION_ENABLED_MODULES:NSESSION} ${SESSION_DISABLED_MODULES} ${module}_IMPLIES= SESSION .endfor # Multi-Processing Modules options handling MPM_PREFORK_CONFIGURE_ON= --with-mpm=prefork MPM_WORKER_CONFIGURE_ON= --with-mpm=worker MPM_EVENT_CONFIGURE_ON= --with-mpm=event MPM_SHARED_CONFIGURE_ON= --enable-mpms-shared=all MPM_SHARED_SUB_LIST= MPM_FALLBACK_CHECK="" MPM_SHARED_SUB_LIST_OFF= MPM_FALLBACK_CHECK="\#" AUTHNZ_LDAP_CONFIGURE_ON= --enable-authnz-ldap BROTLI_CONFIGURE_WITH= brotli=${LOCALBASE} BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli HTTP2_CONFIGURE_ON= --with-nghttp2=${LOCALBASE} \ --with-ssl=${OPENSSLBASE} HTTP2_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 HTTP2_USES= ssl IPV4_MAPPED_CONFIGURE_ENABLE= v4-mapped LDAP_CONFIGURE_ON= --enable-ldap=shared LUAJIT_LIB_DEPENDS= libluajit-5.1.so:lang/luajit LUA_CONFIGURE_ENV= LUA_CFLAGS="-I${LUA_INCDIR}" \ LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}" LUA_CONFIGURE_WITH= lua=${LOCALBASE} LUA_USES= lua MD_CONFIGURE_ON= --with-curl=${LOCALBASE} \ --with-jansson=${LOCALBASE} \ --with-ssl=${OPENSSLBASE} MD_LIB_DEPENDS= libcurl.so:ftp/curl \ libjansson.so:devel/jansson MD_USES= ssl PROXY_HTML_USE= GNOME=libxml2 PROXY_HTML_USES= gnome PROXY_HTTP2_CONFIGURE_ON= --with-nghttp2=${LOCALBASE} PROXY_HTTP2_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 SOCACHE_DC_CONFIGURE_ON= --with-distcache=${LOCALBASE} SOCACHE_DC_LIB_DEPENDS= libdistcache.so:security/distcache # Note: OpenSSL version (base/ports) depends how devel/apr1 was built # apu-1-config --(includes|ldflags) and apr_rules.mk SSL_CONFIGURE_ON= --with-ssl=${OPENSSLBASE} SSL_USES= ssl +SUEXEC_SYSLOG_CONFIGURE_ON= --without-suexec-logfile --with-suexec-syslog XML2ENC_USE= GNOME=libxml2 XML2ENC_USES= gnome ETC_SUBDIRS= Includes envvars.d extra modules.d APR_CONFIG?= ${LOCALBASE}/bin/apr-1-config APU_CONFIG?= ${LOCALBASE}/bin/apu-1-config APU_LDAP?= ${LOCALBASE}/lib/apr-util-1/apr_ldap.so APU_CRYPTO_OPENSSL?= ${LOCALBASE}/lib/apr-util-1/apr_crypto_openssl.so APU_CRYPTO_NSS?= ${LOCALBASE}/lib/apr-util-1/apr_crypto_nss.so .include PREFIX_RELDEST= ${PREFIX:S,^${DESTDIR},,} CONFIGURE_ARGS+=--prefix=${PREFIX_RELDEST} \ --enable-layout=FreeBSD \ --enable-http \ --with-pcre=${LOCALBASE} \ --with-apr=${APR_CONFIG} \ --with-apr-util=${APU_CONFIG} CONFIGURE_ENV+= LOCALBASE="${LOCALBASE}" \ CONFIG_SHELL="${SH}" MAKE_ENV+= EXPR_COMPAT=yes \ INSTALL_MAN="${INSTALL_MAN}" \ DATADIR=${DATADIR} .for module in ${ALL_MODULES} .if ${PORT_OPTIONS:M${module}} CONFIGURE_ARGS+= --enable-${module:S/_/-/g:tl}=shared .else CONFIGURE_ARGS+= --disable-${module:S/_/-/g:tl} .endif .endfor #===================================================== # here we do only OPTIONS fixups # Check for APR-util module exists .if exists(${APU_CONFIG}) . if (${PORT_OPTIONS:MLDAP} || ${PORT_OPTIONS:MAUTHNZ_LDAP}) && !exists(${APU_LDAP}) IGNORE= LDAP and AUTHNZ_LDAP requires APR-util to have LDAP support built in.\ Please rebuild APR with LDAP support . endif . if ${PORT_OPTIONS:MSESSION_CRYPTO} && \ !(exists(${APU_CRYPTO_OPENSSL}) || exists(${APU_CRYPTO_NSS})) IGNORE= SESSION_CRYPTO requires APR-util to have crypto openssl support built in.\ Please rebuild APR with crypto openssl support . endif .endif # exists APU_CONFIG .if ( ${PORT_OPTIONS:MAUTH_BASIC} || ${PORT_OPTIONS:MAUTH_DIGEST} ) && \ empty(PORT_OPTIONS:MAUTHN*) IGNORE= AUTH_BASIC and AUTH_DIGEST need at least one AUTHN provider .endif .if ${PORT_OPTIONS:MAUTH_BASIC} && empty(PORT_OPTIONS:MAUTHZ*) IGNORE= AUTH_BASIC needs at least one AUTHZ provider .endif # Non options-NG option handling .if ${PORT_OPTIONS:MXML2ENC} || ${PORT_OPTIONS:MPROXY_HTML} CONFIGURE_ARGS+= --with-libxml2=${LOCALBASE}/include/libxml2 .else CONFIGURE_ARGS+= --without-libxml2 .endif # WITH_STATIC_SUPPORT, WITH_DEBUG, WITH_EXCEPTION_HOOK # Only to be used for special builds .if defined(WITH_STATIC_SUPPORT) CONFIGURE_ARGS+= --enable-static-support .endif .if defined(WITH_DEBUG) # debug overrides CFLAGS DEBUG_FLAGS?= -O0 -g -ggdb3 CFLAGS= ${DEBUG_FLAGS} CONFIGURE_ARGS+= --enable-maintainer-mode WITH_EXCEPTION_HOOK= yes .else EXTRA_PATCHES+= ${FILESDIR}/extra-patch-server_buildmark.c .endif .if defined(WITH_EXCEPTION_HOOK) CONFIGURE_ARGS+= --enable-exception-hook .endif pre-extract-SUEXEC-on: @${ECHO_CMD} "" @${ECHO_CMD} "suexec builds with user '${USERS}' and docroot '${PREFIX}/www' by default," @${ECHO_CMD} "use SUEXEC_DOCROOT and SUEXEC_USERDIR in /etc/make.conf to adjust." @${ECHO_CMD} "" post-extract: # make sure the configure script contains our patches, preserve the original script for comparsion -${MV} -v ${WRKSRC}/configure ${WRKSRC}/configure.upstream # make stage-qa script happy, it complains on empty dirs even 'PORTDOCS=*' is set # use RMDIR in case upstream ever place some files into this directories .for d in xsl/util xsl lang -${RMDIR} ${WRKSRC}/docs/manual/style/${d} .endfor post-patch: ${REINPLACE_CMD} -e 's," PLATFORM ",FreeBSD,' ${WRKSRC}/server/core.c ${REINPLACE_CMD} -e 's|logs/error_log|/var/log/httpd-error.log|' \ ${WRKSRC}/include/httpd.h ${REINPLACE_CMD} -e 's|perlbin=.*|perlbin=${PERL}|' \ ${WRKSRC}/configure.in ${RM} ${WRKSRC}/docs/docroot/*.bak ${INSTALL_DATA} ${WRKSRC}/NOTICE ${WRKSRC}/docs/manual pre-configure:: # silence autotools -@${MV} -v ${WRKSRC}/configure.in ${WRKSRC}/configure.ac 2>/dev/null post-configure: @FTPUSERS=`${EGREP} -v '^#' /etc/ftpusers| ${TR} -s "\n" " "` ;\ ${REINPLACE_CMD} -e "s,%%FTPUSERS%%,$${FTPUSERS}," \ ${WRKSRC}/docs/conf/extra/httpd-userdir.conf ${REINPLACE_CMD} -e "/EXTRA_LDFLAGS/s|-L/usr/lib||g" ${WRKSRC}/build/config_vars.mk ${REINPLACE_CMD} -e "s,%%WWWOWN%%,${WWWOWN}," -e "s,%%WWWGRP%%,${WWWGRP}," \ ${WRKSRC}/docs/conf/httpd.conf ${REINPLACE_CMD} -e "s,%%PREFIX%%,${PREFIX}," ${WRKSRC}/support/envvars-std post-install: @${MKDIR} ${ETC_SUBDIRS:S|^|${STAGEDIR}${ETCDIR}/|} ${INSTALL_DATA} ${FILESDIR}/no-accf.conf ${STAGEDIR}${ETCDIR}/Includes/ # place for 3rd party module configuration ${INSTALL_DATA} ${FILESDIR}/README_modules.d ${STAGEDIR}${ETCDIR}/modules.d/ # strip returns an error for non binary files, but we have a big mix -${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/* 2>/dev/null -${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* -${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/apache24/mod_*.so post-install-LOG_FORENSIC-on: ${INSTALL_SCRIPT} ${WRKSRC}/support/check_forensic ${STAGEDIR}${PREFIX}/sbin # maintainer only, check for new modules modlist: extract @${AWK} '/: checking whether to enable mod_/ \ {printf "%%%%%s%%%%libexec/apache24/%s.so\n", \ toupper($$8), $$8}' ${WRKSRC}/configure.upstream \ | ${TR} -d '"' \ | ${SORT} -u \ | ${GREP} -E -v '^%%MOD_(HTTP|ISAPI|LOG_CONFIG|PRIVILEGES|SO|UNIXD)%%' .include Index: head/www/apache24/Makefile.options =================================================================== --- head/www/apache24/Makefile.options (revision 542071) +++ head/www/apache24/Makefile.options (revision 542072) @@ -1,100 +1,101 @@ # $FreeBSD$ # =========================================================== # Only the most important modules are enabled per default in # httpd.conf, therfore build all modules not depending on other # ports, marked as example or developer module. # # Required modules without OPTION: # UNIXD LOG_CONFIG # mod_proxy_html and xml2enc depending on libxml2 PROXY_ENABLED_MODULES= \ PROXY_AJP PROXY_BALANCER PROXY_CONNECT PROXY_EXPRESS PROXY_FCGI \ PROXY_HTTP2 PROXY_FDPASS PROXY_FTP PROXY_HCHECK PROXY_HTML PROXY_HTTP \ PROXY_SCGI PROXY_UWSGI PROXY_WSTUNNEL PROXY_DISABLED_MODULES= # SESSION_CRYPTO need APR build with crypto (EVP support in APR) SESSION_ENABLED_MODULES= \ SESSION_COOKIE SESSION_CRYPTO SESSION_DBD SESSION_DISABLED_MODULES= EXAMPLE_MODULES= \ BUCKETEER CASE_FILTER CASE_FILTER_IN ECHO EXAMPLE_HOOKS EXAMPLE_IPC \ OPTIONAL_FN_EXPORT OPTIONAL_FN_IMPORT OPTIONAL_HOOK_EXPORT \ OPTIONAL_HOOK_IMPORT MOST_ENABLED_MODULES= \ ACCESS_COMPAT ACTIONS ALIAS ALLOWMETHODS ASIS \ AUTHN_ANON AUTHN_CORE AUTHN_DBD AUTHN_DBM AUTHN_FILE AUTHN_SOCACHE \ AUTHZ_CORE AUTHZ_DBD AUTHZ_DBM AUTHNZ_FCGI AUTHZ_GROUPFILE AUTHZ_HOST \ AUTHZ_OWNER AUTHZ_USER \ AUTH_BASIC AUTH_DIGEST AUTH_FORM AUTOINDEX \ BUFFER \ CACHE CACHE_DISK CACHE_SOCACHE CERN_META CGI CGID \ CHARSET_LITE \ DATA DAV DAV_FS DAV_LOCK DBD DEFLATE DIALUP DIR DUMPIO \ ENV EXPIRES EXT_FILTER \ FILE_CACHE FILTER \ HEADERS HEARTBEAT HEARTMONITOR HTTP2 \ IMAGEMAP INCLUDE INFO \ LBMETHOD_BYBUSYNESS LBMETHOD_BYREQUESTS LBMETHOD_BYTRAFFIC \ LBMETHOD_HEARTBEAT LOGIO LOG_DEBUG LOG_FORENSIC \ MACRO MIME MIME_MAGIC \ NEGOTIATION \ RATELIMIT REFLECTOR REMOTEIP REQTIMEOUT REQUEST REWRITE \ SED SETENVIF \ SLOTMEM_PLAIN SLOTMEM_SHM SOCACHE_DBM SOCACHE_MEMCACHE SOCACHE_SHMCB \ SPELING SSL STATUS SUBSTITUTE \ UNIQUE_ID USERDIR USERTRACK \ VERSION VHOST_ALIAS \ WATCHDOG XML2ENC MOST_DISABLED_MODULES= \ - AUTHNZ_LDAP BROTLI IDENT LDAP LUA MD SOCACHE_DC SOCACHE_REDIS SUEXEC + AUTHNZ_LDAP BROTLI IDENT LDAP LUA MD SOCACHE_DC SOCACHE_REDIS SUEXEC \ + SUEXEC_SYSLOG # enable/disable additional PROXY/SESSION modules META_MODULES= PROXY SESSION ADDITIONAL_OPT= LUAJIT IPV4_MAPPED # =================================================================================== OPTIONS_MULTI= ${META_MODULES} OPTIONS_MULTI_PROXY= ${PROXY_ENABLED_MODULES} ${PROXY_DISABLED_MODULES} OPTIONS_MULTI_SESSION= ${SESSION_ENABLED_MODULES} ${SESSION_DISABLED_MODULES} OPTIONS_GROUP= EXAMPLE OPTIONS_GROUP_EXAMPLE= ${EXAMPLE_MODULES} OPTIONS_RADIO= MPM_SHARED OPTIONS_RADIO_MPM_SHARED= MPM_SHARED OPTIONS_SINGLE= DEFAULT_MPM OPTIONS_SINGLE_DEFAULT_MPM= MPM_PREFORK MPM_WORKER MPM_EVENT # =================================================================================== ALL_MODULES= ${MOST_ENABLED_MODULES} ${MOST_DISABLED_MODULES} \ ${PROXY_ENABLED_MODULES} ${PROXY_DISABLED_MODULES} \ ${SESSION_ENABLED_MODULES} ${SESSION_DISABLED_MODULES} \ ${EXAMPLE_MODULES} ${META_MODULES} OPTIONS_DEFINE= \ DOCS \ ${MOST_ENABLED_MODULES} \ ${MOST_DISABLED_MODULES}\ ${ADDITIONAL_OPT} \ ${OPTIONS_MULTI} OPTIONS_DEFAULT= \ ${MOST_ENABLED_MODULES} \ ${OPTIONS_MULTI} \ ${SESSION_ENABLED_MODULES} \ ${PROXY_ENABLED_MODULES} \ MPM_SHARED \ MPM_PREFORK Index: head/www/apache24/Makefile.options.desc =================================================================== --- head/www/apache24/Makefile.options.desc (revision 542071) +++ head/www/apache24/Makefile.options.desc (revision 542072) @@ -1,171 +1,172 @@ # $FreeBSD$ # vim: syntax=make ts=8 noet # ===================================== # OPTIONS HEADING PROXY_DESC= Build enabled PROXY modules SESSION_DESC= Build enabled SESSION modules DEFAULT_MPM_DESC= The default MPM module SHARED_MPM_DESC= Build all MPMs as shared Module EXAMPLE_DESC= Example and devel modules (do not use in prod) # ===================================== # MPMs MPM_SHARED_DESC= all MPMs as loadable module MPM_PREFORK_DESC= non-threaded, pre-forking web server MPM_WORKER_DESC= hybrid multi-threaded multi-process web server MPM_EVENT_DESC= MPM worker variant with the goal of consuming threads only for connections with active processing # ===================================== # additional (no modules) IPV4_MAPPED_DESC= Allow IPv6 sockets to handle IPv4 connections LUAJIT_DESC= LuaJit Support # ===================================== # modules # DESC from modules/*/config.m4 files ACCESS_COMPAT_DESC= mod_access compatibility ACTIONS_DESC= Action triggering on requests ALIAS_DESC= Mapping of requests to different filesystem parts ALLOWMETHODS_DESC= Restrict allowed HTTP methods ASIS_DESC= Sends files that contain their own HTTP headers AUTHNZ_FCGI_DESC= FastCGI authorizer-based authentication and authorization AUTHNZ_LDAP_DESC= LDAP based authentication AUTHN_ANON_DESC= Anonymous user authentication control AUTHN_CORE_DESC= Core authentication module AUTHN_DBD_DESC= SQL-based authentication control AUTHN_DBM_DESC= DBM-based authentication control AUTHN_FILE_DESC= File-based authentication control AUTHN_SOCACHE_DESC= Cached authentication control AUTHZ_CORE_DESC= Core authorization provider vector module AUTHZ_DBD_DESC= SQL based authorization and Login/Session support AUTHZ_DBM_DESC= DBM-based authorization control AUTHZ_GROUPFILE_DESC= "require group" authorization control AUTHZ_HOST_DESC= Host-based authorization control AUTHZ_OWNER_DESC= "require file-owner" authorization control AUTHZ_USER_DESC= "require user" authorization control AUTH_BASIC_DESC= Basic authentication AUTH_DIGEST_DESC= RFC2617 Digest authentication AUTH_FORM_DESC= Form authentication AUTOINDEX_DESC= Directory listing BROTLI_DESC= Brotli compression support BUCKETEER_DESC= (dev) buckets manipulation filter BUFFER_DESC= Filter Buffering CACHE_DESC= Dynamic file caching CACHE_DISK_DESC= Disk caching module CACHE_SOCACHE_DESC= Shared object cacheing module CASE_FILTER_DESC= (dev) example uppercase conversion filter CASE_FILTER_IN_DESC= (dev) example uppercase conversion input filter CERN_META_DESC= CERN-type meta files CGID_DESC= CGI scripts (threaded MPMs) CGI_DESC= CGI scripts (non-threaded MPMs) CHARSET_LITE_DESC= Character set translation. Enabled by default only on EBCDIC systems DATA_DESC= RFC2397 data encoder DAV_DESC= WebDAV protocol handling. --enable-dav also enables mod_dav_fs DAV_FS_DESC= DAV provider for the filesystem. --enable-dav also enables mod_dav_fs DAV_LOCK_DESC= DAV provider for generic locking DBD_DESC= Apache DBD Framework DEFLATE_DESC= Deflate transfer encoding support DIALUP_DESC= Rate limits static files to dialup modem speeds DIR_DESC= Directory request handling DUMPIO_DESC= I/O dump filter ECHO_DESC= (dev) example echo server ENV_DESC= Clearing/setting of ENV vars EXAMPLE_HOOKS_DESC= (dev) example hook callback handler module EXAMPLE_IPC_DESC= (dev) example of shared memory and mutex usage EXPIRES_DESC= Expires header control EXT_FILTER_DESC= External filter module FILE_CACHE_DESC= File cache FILTER_DESC= Smart Filtering HEADERS_DESC= HTTP header control HEARTBEAT_DESC= Generates Heartbeats HEARTMONITOR_DESC= Collects Heartbeats HTTP2_DESC= HTTP/2 (RFC 7540) support IDENT_DESC= RFC 1413 ident lookups IMAGEMAP_DESC= Server-side imagemaps INCLUDE_DESC= Server-side includes INFO_DESC= Server information LBMETHOD_BYBUSYNESS_DESC= Apache proxy Load balancing by busyness LBMETHOD_BYREQUESTS_DESC= Apache proxy Load balancing by request counting LBMETHOD_BYTRAFFIC_DESC= Apache proxy Load balancing by traffic counting LBMETHOD_HEARTBEAT_DESC= Apache proxy Load balancing from Heartbeats LDAP_DESC= LDAP caching and connection pooling services LOGIO_DESC= Input and output logging LOG_CONFIG_DESC= logging configuration LOG_DEBUG_DESC= Configurable debug logging LOG_FORENSIC_DESC= Forensic logging LUA_DESC= Apache Lua Framework MACRO_DESC= Define and use macros in configuration files MD_DESC= Managing domains across virtual hosts, certificate provisioning via the ACME protocol MIME_DESC= Mapp file-ext. to MIME (recommended) MIME_MAGIC_DESC= Automagically determining MIME type NEGOTIATION_DESC= Content negotiation OPTIONAL_FN_EXPORT_DESC= (dev) example optional function exporter OPTIONAL_FN_IMPORT_DESC= (dev) example optional function importer OPTIONAL_HOOK_EXPORT_DESC= (dev) example optional hook exporter OPTIONAL_HOOK_IMPORT_DESC= (dev) example optional hook importer #PRIVILEGES_DESC= Per-virtualhost Unix UserIDs and enhanced security for Solaris PROXY_AJP_DESC= AJP support module for mod_proxy PROXY_BALANCER_DESC= mod_proxy extension for load balancing PROXY_CONNECT_DESC= mod_proxy extension for CONNECT request handling PROXY_EXPRESS_DESC= Dynamic mass reverse proxy extension for mod_proxy PROXY_FCGI_DESC= FastCGI support module for mod_proxy PROXY_FDPASS_DESC= fdpass external process support module for mod_proxy PROXY_FTP_DESC= FTP support module for mod_proxy PROXY_HCHECK_DESC= Dynamic health check of Balancer members (workers) for mod_proxy PROXY_HTML_DESC= Fix HTML Links in a Reverse Proxy PROXY_HTTP_DESC= HTTP support module for mod_proxy PROXY_HTTP2_DESC= HTTP/2 support module for h2 and h2c PROXY_SCGI_DESC= SCGI gateway module for mod_proxy PROXY_UWSGI_DESC= UWSGI gateway module for mod_proxy PROXY_WSTUNNEL_DESC= Websockets Tunnel module for mod_proxy RATELIMIT_DESC= Output Bandwidth Limiting REFLECTOR_DESC= Reflect request through the output filter stack REMOTEIP_DESC= Translate header contents to an apparent client remote_ip REQTIMEOUT_DESC= Limit time waiting for request from client REQUEST_DESC= Request Body Filtering REWRITE_DESC= Rule based URL manipulation SED_DESC= Filter request and/or response bodies through sed SESSION_COOKIE_DESC= Session cookie module SESSION_CRYPTO_DESC= Session crypto module SESSION_DBD_DESC= Session dbd module SETENVIF_DESC= Modify ENV vars based on characteristics of the request SLOTMEM_PLAIN_DESC= Slotmem provider that uses plain memory SLOTMEM_SHM_DESC= Slotmem provider that uses shared memory SOCACHE_DBM_DESC= dbm small object cache provider SOCACHE_DC_DESC= distcache small object cache provider SOCACHE_MEMCACHE_DESC= memcache small object cache provider SOCACHE_REDIS_DESC= Redis based shared object cache provider SOCACHE_SHMCB_DESC= shmcb small object cache provider SPELING_DESC= Correct common URL misspellings SSL_DESC= SSL/TLS support (mod_ssl) STATUS_DESC= Process/thread monitoring SUBSTITUTE_DESC= Response content rewrite-like filtering SUEXEC_DESC= Set uid and gid for spawned processes +SUEXEC_SYSLOG_DESC= Enable syslog for suexec UNIQUE_ID_DESC= Per-request unique ids UNIXD_DESC= (required) security for Unix-family platforms USERDIR_DESC= Mapping of requests to user-specific directories USERTRACK_DESC= User-session tracking VERSION_DESC= Determining httpd version in config files VHOST_ALIAS_DESC= Mass virtual hosting WATCHDOG_DESC= Watchdog module XML2ENC_DESC= i18n support for markup filters