diff options
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Uses/apache.mk | 433 | ||||
-rw-r--r-- | Mk/Uses/php.mk | 2 | ||||
-rw-r--r-- | Mk/bsd.apache.mk | 520 | ||||
-rw-r--r-- | Mk/bsd.port.mk | 15 | ||||
-rw-r--r-- | Mk/bsd.sanity.mk | 9 |
5 files changed, 448 insertions, 531 deletions
diff --git a/Mk/Uses/apache.mk b/Mk/Uses/apache.mk new file mode 100644 index 000000000000..e995004d7f1a --- /dev/null +++ b/Mk/Uses/apache.mk @@ -0,0 +1,433 @@ +#-*- tab-width: 4; -*- +# ex:ts=4 +# +# $FreeBSD$ +# +# apache.mk - Apache related macros. +# Author: Clement Laforet <clement@FreeBSD.org> +# Author: Olli Hauer <ohauer@FreeBSD.org> +# Author: Bernard Spil <brnrd@FreeSBD.org> +# +# Please view me with 4 column tabs! + +# Feature: apache +# Usage: USES=apache or USES=apache:args +# Valid args: <version>, 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 +.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="\(.*\)"><str.*/\1/g' | \ + ${HEAD} -7 | ${TAIL} -6` ; \ + ${ECHO_MSG} done >&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) diff --git a/Mk/Uses/php.mk b/Mk/Uses/php.mk index 698e18e70c34..5833502546e7 100644 --- a/Mk/Uses/php.mk +++ b/Mk/Uses/php.mk @@ -278,7 +278,7 @@ BUILD_DEPENDS+= ${PHPBASE}/include/php/main/php.h:${PHP_PORT} RUN_DEPENDS+= ${PHPBASE}/include/php/main/php.h:${PHP_PORT} . if ${php_ARGS:Mmod} || (${php_ARGS:Mweb} && defined(PHP_VERSION) && ${PHP_SAPI:Mcgi} == "" && ${PHP_SAPI:Mfpm} == "") USE_APACHE_RUN= 22+ -.include "${PORTSDIR}/Mk/bsd.apache.mk" +.include "${PORTSDIR}/Mk/Uses/apache.mk" # libphpX.so only has the major version number in it, so remove the last digit of PHP_VER to get it. RUN_DEPENDS+= ${PHPBASE}/${APACHEMODDIR}/libphp${PHP_VER:C/.$//}.so:${MOD_PHP_PORT} . endif diff --git a/Mk/bsd.apache.mk b/Mk/bsd.apache.mk deleted file mode 100644 index 768cb2cecfe6..000000000000 --- a/Mk/bsd.apache.mk +++ /dev/null @@ -1,520 +0,0 @@ -# $FreeBSD$ -# -# bsd.apache.mk - Apache related macros. -# Author: Clement Laforet <clement@FreeBSD.org> -# Author: Olli Hauer <ohauer@FreeBSD.org> -# -# Please view me with 4 column tabs! - -# ========================================================================= -# User controlled parameters for usage in /etc/make.conf: -# -# DEFAULT_VERSIONS - define the default apache version -# valid args: apache=2.2, apache=2.4 -# -# APACHE_PORT - use www/apache22-(event|itk|peruser|worker)-mpm -# instead www/apache22. Use this parameter only in -# combination with "DEFAULT_VERSIONS+= apache=2.2" -# -# Example entry in /etc/make.conf: -# - Set apache22 as default version -# DEFAULT_VERSIONS+= apache=2.2 -# -# - Additional use a special www/apache22-$MPM port -# APACHE_PORT= www/apache22-event-mpm -# -# Note: -# - This parameters should never be used in the Makefile of a port! -# - To get a list of "possible" APACHE_PORT values execute the command: -# $> awk '/apache22-/ {print "www/" $3}' ports/www/Makefile -# -# ========================================================================= -# -# This script will be included if one of the following parameter -# is defined in the Makefile of the port -# -# USE_APACHE - Set apache and apxs as build and run dependency -# USE_APACHE_BUILD - Set apache and apxs as build dependency -# USE_APACHE_RUN - Set apache and apxs as run dependency -# -# The following example is representative of all three possible -# parameters to use. -# -# Examples: -# USE_APACHE= 22 # specify exact version -# USE_APACHE= 22+ # specify [min] version, no [max] version -# USE_APACHE= 22-24 # specify [min]-[max] range -# USE_APACHE= -22 # specify [max] version, no [min] version -# -# Note: -# - If "+" is specified and no apache is installed, then -# ${DEFAULT_APACHE_VERSION} will be used. -# -# - Valid version numbers are specified in the variable -# APACHE_SUPPORTED_VERSION below -# -# - The following values for USE_APACHE are reserverd and only valid -# in apache-server ports! -# USE_APACHE= common22 -# -# -# The following variables can be used (ro) in ports Makefile -# ========================================================================= -# - APACHE_VERSION -# - APACHEETCDIR -# - APACHEINCLUDEDIR -# - APACHEMODDIR -# - DEFAULT_APACHE_VERSION -# -# -# Parameters for building third party apache modules: -# ========================================================================= -# - 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 # default: ${PORTNAME} -# - SHORTMODNAME # default: ${MODULENAME:S/mod_//} -# - SRC_FILE # default: ${MODULENAME}.c -# -# - -.if !defined(Apache_Pre_Include) - -Apache_Pre_Include= bsd.apache.mk - -.if defined(DEFAULT_APACHE_VER) -WARNING+= "DEFAULT_APACHE_VER is defined, consider using DEFAULT_VERSIONS+=apache=${DEFAULT_APACHE_VER} instead" -.endif - -DEFAULT_APACHE_VERSION?= ${APACHE_DEFAULT:S/.//} -# When adding a version, please keep the comment in -# Mk/bsd.default-versions.mk in sync. -APACHE_SUPPORTED_VERSION= 24 22 # preferred version first - -# Print warnings -_ERROR_MSG= : Error from bsd.apache.mk. - -# Important Note: -# Keep apache version in ascending order! -# The "+" sign is only valid as last sign, not between -# two versions or in combination with range! -.if defined(USE_APACHE) && !empty(USE_APACHE) -. if ${USE_APACHE:Mcommon*} != "" -AP_PORT_IS_SERVER= yes -. elif ${USE_APACHE:C/\-//:S/^22//:S/^24//:C/\+$//} == "" -AP_PORT_IS_MODULE= yes -. if ${USE_APACHE:C/\-//:S/^22//:S/^24//} == "+" -AP_PLUS= yes -. endif -. else -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE ( ${USE_APACHE} ) -. endif -# Catch unknown apache versions and silly USE_APACHE constructs -. if empty(AP_PORT_IS_SERVER) && empty(AP_PORT_IS_MODULE) -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE ( ${USE_APACHE} ) -. endif -# Catch USE_APACHE [min]-[max]+ -. if defined(AP_PLUS) && ${USE_APACHE:C/[.+0-9]//g} == "-" -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE ( ${USE_APACHE} ) -. endif -.elif defined(USE_APACHE) -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE ( no version specified ) -.endif # defined(USE_APACHE) - -# =============================================================== -.if defined(AP_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 - -# detect invalid lowercase params in make.conf -# keep this check until end of 2012 -.if defined(WITH_STATIC_MODULES) && ${WITH_STATIC_MODULES:M[a-z]*} -IGNORE= lowercase WITH_STATIC_MODULES="${WITH_STATIC_MODULES}"\ - detected (make.conf), they shoud be UPPERCASE -.endif - -# Setting "@comment " as default. -.for module in ${AVAILABLE_MODULES:O} -${module}PLIST_SUB= "@comment " -_DISABLE_MODULES+= --disable-${module:tl} -.endfor - -# Configure -# dirty hacks to make sure all modules are disabled before we select them -.if ${USE_APACHE:Mcommon2*} -CONFIGURE_ARGS+= ${_DISABLE_MODULES:O:u} -.endif - -# OPTIONS handling -.for module in ${AVAILABLE_MODULES} -. if ${PORT_OPTIONS:M${module}} -_APACHE_MODULES+= ${module} -. else -WITHOUT_MODULES+= ${module} -. endif -.endfor - -.if !defined(WITH_STATIC_APACHE) -# FYI -#DYNAMIC_MODULES= so -CONFIGURE_ARGS+= --enable-so -.else -CONFIGURE_ARGS+= --disable-so -WITH_ALL_STATIC_MODULES= yes -.endif - -.if ${PORT_OPTIONS:MSUEXEC} -_APACHE_MODULES+= ${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 -.endif - -.if !defined(WITHOUT_MODULES) -APACHE_MODULES= ${_APACHE_MODULES} -.else -.for module in ${_APACHE_MODULES:O:u} -. if !${WITHOUT_MODULES:M${module}} -APACHE_MODULES+= ${module} -. endif -.endfor -.endif - -.if defined(WITH_STATIC_MODULES) -.for module in ${APACHE_MODULES} -. if ${WITH_STATIC_MODULES:M${module}} -_CONFIGURE_ARGS+= --enable-${module:tl}=static -. else -_CONFIGURE_ARGS+= --enable-${module:tl}=shared -. endif -.endfor -CONFIGURE_ARGS+= ${_CONFIGURE_ARGS:O} -.elif defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES) -WITH_STATIC_MODULES= ${APACHE_MODULES} -CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES:O:tl}" -.else -CONFIGURE_ARGS+= --enable-mods-shared="${APACHE_MODULES:O:tl}" -.endif - -# ==================================== -# start pkg-plist adjustments -.if defined(WITH_STATIC_MODULES) -.for module in ${APACHE_MODULES} -. if !${WITH_STATIC_MODULES:M${module}} -_SHARED_MODULES+= ${module} -. endif -.endfor - -SHARED_MODULES= ${_SHARED_MODULES} -.elif !defined(WITH_ALL_STATIC_MODULES) -SHARED_MODULES= ${APACHE_MODULES} -.endif - -.for module in ${SHARED_MODULES} -${module}PLIST_SUB= "" -.endfor - -.for module in ${AVAILABLE_MODULES:O:u} -PLIST_SUB+= MOD_${module}=${${module}PLIST_SUB} -.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 pkg-plist adjustments - -#### End of AP_PORT_IS_SERVER #### - -# =============================================================== -.elif defined(AP_PORT_IS_MODULE) || defined(USE_APACHE_RUN) || defined(USE_APACHE_BUILD) -APXS?= ${LOCALBASE}/sbin/apxs -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\/\([0-9]\)\.\([0-9]*\).*/\1\2/p' -.elif defined(APACHE_PORT) -_APACHE_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,.*/apache\([0-9]*\).*,\1,p' -.endif - -.if defined(USE_APACHE) -_USE_APACHE:= ${USE_APACHE} -.elif defined(USE_APACHE_BUILD) -_USE_APACHE:= ${USE_APACHE_BUILD} -.elif defined(USE_APACHE_RUN) -_USE_APACHE:= ${USE_APACHE_RUN} -.endif - -_APACHE_VERSION_CHECK:= ${_USE_APACHE:C/^([1-9][0-9])$/\1-\1/} -_APACHE_VERSION_MINIMUM_TMP:= ${_APACHE_VERSION_CHECK:C/([1-9][0-9])[-+].*/\1/} -_APACHE_VERSION_MINIMUM:= ${_APACHE_VERSION_MINIMUM_TMP:M[1-9][0-9]} -_APACHE_VERSION_MAXIMUM_TMP:= ${_APACHE_VERSION_CHECK:C/.*-([1-9][0-9])/\1/} -_APACHE_VERSION_MAXIMUM:= ${_APACHE_VERSION_MAXIMUM_TMP:M[1-9][0-9]} - -# ============================================================== -# num+ -.if ${_USE_APACHE:M*+} -_APACHE_WANTED_VERSIONS= ${DEFAULT_APACHE_VERSION} - -# -num -.elif ${_USE_APACHE:M\-[0-9][0-9]} -.for _v in ${APACHE_SUPPORTED_VERSION:O} -. if ${_APACHE_VERSION_MAXIMUM} >= ${_v} -_APACHE_WANTED_VERSIONS+= ${_v} -. endif -.endfor - -# num-num -.elif ${_USE_APACHE:M[0-9][0-9]-[0-9][0-9]} -.for _v in ${APACHE_SUPPORTED_VERSION} -. if ${_APACHE_VERSION_MINIMUM} <= ${_v} && ${_APACHE_VERSION_MAXIMUM} >= ${_v} -_APACHE_WANTED_VERSIONS+= ${_v} -. endif -.endfor - -# num -.elif ${_USE_APACHE:M[0-9][0-9]} -_APACHE_WANTED_VERSIONS= ${_USE_APACHE:M[0-9][0-9]} -.endif -# ============================================================== - -.if !defined(_APACHE_WANTED_VERSIONS) -_APACHE_WANTED_VERSIONS= ${DEFAULT_APACHE_VERSION} -.endif - -.for _v in ${_APACHE_WANTED_VERSIONS:O:u} -_APACHE_HIGHEST_VERSION:= ${_v} -. if defined (_APACHE_VERSION) && ${_APACHE_VERSION} == ${_v} -_APACHE_WANTED_VERSION:= ${_v} -. endif -.endfor - -.if !defined(_APACHE_WANTED_VERSION) -# next line is broken on 8.x and 9.x but working on 10 -#_APACHE_WANTED_VERSION:= ${_APACHE_WANTED_VERSIONS:O:u:M${DEFAULT_APACHE_VERSION}} -# working line on 8.x, 9.x, 10 -_APACHE_WANTED_VERSION:= ${_APACHE_WANTED_VERSIONS:O:u:MDEFAULT_APACHE_VERSION} -. if empty(_APACHE_WANTED_VERSION) -_APACHE_WANTED_VERSION:= ${_APACHE_HIGHEST_VERSION} -. endif -.endif - -.if defined(_APACHE_VERSION) && ${_APACHE_VERSION} != ${_APACHE_WANTED_VERSION} -BROKEN= ${_ERROR_MSG} apache${_APACHE_VERSION} is installed (or APACHE_PORT is defined) and port requires apache${_APACHE_VERSION_NONSUPPORTED} -.endif - -APACHE_VERSION:= ${_APACHE_WANTED_VERSION} - -.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} -APACHEINCLUDEDIR=include/apache${APACHE_VERSION} -APACHEETCDIR= etc/apache${APACHE_VERSION} -APACHE_PORT?= www/apache${APACHE_VERSION} - -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}- - -.if defined(AP_FAST_BUILD) -PKGNAMEPREFIX?= ${APACHE_PKGNAMEPREFIX} -.endif - -.if defined(USE_APACHE) || defined(USE_APACHE_BUILD) -BUILD_DEPENDS+= ${APXS}:${APACHE_PORT} -.endif - -.if defined(USE_APACHE) || defined(USE_APACHE_RUN) -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 AP_PORT_IS_SERVER / AP_PORT_IS_MOULE -.endif # End of !Apache_Pre_Include - -# =============================================================== -.if defined(_POSTMKINCLUDED) && !defined(Apache_Post_Include) -Apache_Post_Include= bsd.apache.mk - -.if defined(USE_APACHE_RUN) && !empty(USE_APACHE_RUN) -. if ${USE_APACHE_RUN:C/\-//:S/^22//:S/^24//:C/\+$//} != "" -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE_RUN ( ${USE_APACHE_RUN} ) -. endif -.elif defined(USE_APACHE_RUN) -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE_RUN ( no valid version specified ) -.endif - -.if defined(USE_APACHE_BUILD) && !empty(USE_APACHE_BUILD) -. if ${USE_APACHE_BUILD:C/\-//:S/^22//:S/^24//:C/\+$//} != "" -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE_BUILD ( ${USE_APACHE_BUILD} ) -. endif -.elif defined(USE_APACHE_BUILD) -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE_BUILD ( no valid version specified ) -.endif - -# Check if USE_APACHE(_BUILD|_RUN) are mixed together -.if defined(USE_APACHE) && ( defined(USE_APACHE_BUILD) || defined(USE_APACHE_RUN) ) -IGNORE= ${_ERROR_MSG} specify only one of: USE_APACHE USE_APACHE_BUILD USE_APACHE_RUN -.elif defined(USE_APACHE_BUILD) && defined(USE_APACHE_RUN) -IGNORE= ${_ERROR_MSG} use USE_APACHE instead of USE_APACHE_BUILD and USE_APACHE_RUN together -.endif - -.if defined(NO_BUILD) && defined(USE_APACHE) -BROKEN= If NO_BUILD is used, then USE_APACHE_RUN is sufficient. Please fix your Makefile -.endif - -.if defined(AP_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="\(.*\)"><str.*/\1/g' | \ - ${HEAD} -7 | ${TAIL} -6` ; \ - ${ECHO_MSG} done >&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 - -.elif defined(AP_PORT_IS_MODULE) - -.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(AP_PORT_IS_SERVER / AP_PORT_IS_MODULE) -.endif # defined(_POSTMKINCLUDED) && !defined(Apache_Post_Include) diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 4f3f79a5e887..ecb884caa453 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -433,8 +433,6 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # ${PREFIX}/etc/rc.d if ${PREFIX} is not /usr, otherwise they # will be installed in /etc/rc.d/ and added to the packing list. ## -# USE_APACHE - If set, this port relies on an apache webserver. -# # Conflict checking. Use if your port cannot be installed at the same time as # another package. # @@ -1393,8 +1391,13 @@ USES+= php .include "${PORTSDIR}/Mk/bsd.ocaml.mk" .endif -.if defined(USE_APACHE) || defined(USE_APACHE_BUILD) || defined(USE_APACHE_RUN) -.include "${PORTSDIR}/Mk/bsd.apache.mk" +.if defined(USE_APACHE_BUILD) +USES+= apache:build,${USE_APACHE_BUILD:C/2([0-9])/2.\1/g} +.elif defined(USE_APACHE_RUN) +USES+= apache:run,${USE_APACHE_RUN:C/2([0-9])/2.\1/g} +.elif defined(USE_APACHE) +USE_APACHE:= ${USE_APACHE:S/common/server,/} +USES+= apache:${USE_APACHE:C/2([0-9])/2.\1/g} .endif .if defined(USE_QT4) || defined(USE_QT5) @@ -1982,10 +1985,6 @@ _USES_POST+= php .include "${PORTSDIR}/Mk/bsd.wx.mk" .endif -.if defined(USE_APACHE) || defined(USE_APACHE_BUILD) || defined(USE_APACHE_RUN) -.include "${PORTSDIR}/Mk/bsd.apache.mk" -.endif - .if defined(USE_FPC) || defined(WANT_FPC_BASE) || defined(WANT_FPC_ALL) .include "${PORTSDIR}/Mk/bsd.fpc.mk" .endif diff --git a/Mk/bsd.sanity.mk b/Mk/bsd.sanity.mk index 1bf6f20feef2..1c9f2164a208 100644 --- a/Mk/bsd.sanity.mk +++ b/Mk/bsd.sanity.mk @@ -161,11 +161,12 @@ SANITY_UNSUPPORTED= USE_OPENAL USE_FAM USE_MAKESELF USE_ZIP USE_LHA USE_CMAKE \ USE_ZENDEXT USE_PHP_BUILD USE_BDB PLIST_DIRSTRY USE_RCORDER \ USE_OPENSSL WANT_GNOME RUBYGEM_AUTOPLIST WANT_SDL INSTALLS_EGGINFO \ USE_DOS2UNIX NO_STAGE USE_RUBYGEMS USE_GHOSTSCRIPT \ - USE_GHOSTSCRIPT_BUILD USE_GHOSTSCRIPT_RUN USE_AUTOTOOLS + USE_GHOSTSCRIPT_BUILD USE_GHOSTSCRIPT_RUN USE_AUTOTOOLS APACHE_PORT SANITY_DEPRECATED= PYTHON_PKGNAMESUFFIX MLINKS \ USE_MYSQL WANT_MYSQL_VER \ USE_PHPIZE WANT_PHP_CLI WANT_PHP_CGI WANT_PHP_MOD \ - WANT_PHP_WEB WANT_PHP_EMB PYDISTUTILS_INSTALLNOSINGLE + WANT_PHP_WEB WANT_PHP_EMB PYDISTUTILS_INSTALLNOSINGLE \ + USE_APACHE USE_APACHE_BUILD USE_APACHE_RUN SANITY_NOTNEEDED= CMAKE_NINJA WX_UNICODE USE_KDEBASE_VER \ USE_KDELIBS_VER USE_QT_VER @@ -239,6 +240,10 @@ USE_GHOSTSCRIPT_ALT= USES=ghostscript USE_GHOSTSCRIPT_BUILD_ALT= USES=ghostscript USE_GHOSTSCRIPT_RUN_ALT= USES=ghostscript NO_STAGE_ALT= https://wiki.freebsd.org/ports/StageDir to convert your port to staging +USE_APACHE_ALT= USES=apache:${USE_APACHE:C/2(0-9)/2.\1/g} +USE_APACHE_BUILD_ALT= USES=apache:build,${USE_APACHE_BUILD:C/2(0-9)/2.\1/g} +USE_APACHE_RUN_ALT= USES=apache:run,${USE_APACHE_RUN:C/2(0-9)/2.\1/g} +APACHE_PORT_ALT= DEFAULT_VERSIONS+=apache=${APACHE_PORT:S/www\/apache//:C/2(0-9)/2.\1/} .for a in ${SANITY_DEPRECATED} .if defined(${a}) |