Index: Mk/bsd.apache.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.apache.mk,v retrieving revision 1.26 diff -u -r1.26 bsd.apache.mk --- Mk/bsd.apache.mk 7 Jun 2010 14:38:44 -0000 1.26 +++ Mk/bsd.apache.mk 21 Mar 2011 23:38:44 -0000 @@ -13,21 +13,46 @@ # Variables definition # USE_APACHE: Call this script. Values can be: # : 1.3/13/2.0/20/2.2/1.3+/2.0+/2.2+ +# 1.3-2.0/13-20/1.3-2.2/13-22/2.0-2.2/20-22 +# -2.0/-20/-2.2/-22 # common*: common13, common20, and common22 +# Note: +# If '+' is given and no apache is installed +# the ${DEFAULT_APACHE_VERSION} will be used. .if !defined(Apache_Pre_Include) || defined(PORT_IS_MODULE) Apache_Pre_Include= bsd.apache.mk +DEFAULT_APACHE_VERSION= 22 +APACHE_SUPPORTED_VERSION:= ${DEFAULT_APACHE_VERSION} 13 20 # preferred version first + # Print warnings _ERROR_MSG= : Error from bsd.apache.mk. -APACHE_SUPPORTED_VERSION= 13 20 22 + +# Note: +# Keep apache version in ascending order! +# '+' is only valid as last sign, not between two versions +# or in combination with range! .if ${USE_APACHE:Mcommon*} != "" AP_PORT_IS_SERVER= YES -.elif ${USE_APACHE:C/\.//:C/\+//:M[12][320]} != "" +.elif ${USE_APACHE:C/\.//g:C/\-//:S/^13//:S/^20//:S/^22//:S/^24//:C/\+$//} == "" AP_PORT_IS_MODULE= YES +. if ${USE_APACHE:C/\.//g:C/\-//:S/^13//:S/^20//:S/^22//:S/^24//} == "+" +AP_PLUS= yes +. endif .else -IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE +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 aa-bb+ +.if defined(AP_PLUS) && ${USE_APACHE:C/[.+0-9]//g} == "-" +IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE ( ${USE_APACHE} ) .endif .if defined(AP_PORT_IS_SERVER) @@ -225,11 +250,9 @@ .for module in ${AVAILABLE_MODULES} PLIST_SUB+= MOD_${module:U}=${${module}_PLIST_SUB} .endfor -####End of PORT_IS_SERVER #### +#### End of AP_PORT_IS_SERVER #### .elif defined(AP_PORT_IS_MODULE) -AP_VERSION= ${USE_APACHE:C/\.//} - APXS?= ${LOCALBASE}/sbin/apxs HTTPD?= ${LOCALBASE}/sbin/httpd @@ -248,21 +271,42 @@ AP_CUR_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,.*/apache\([0-9]*\).*,\1,p' .endif +# Validate Apache version whether it meets USE_APACHE version restriction. +_APACHE_VERSION_CHECK:= ${USE_APACHE:C/\.//g: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]} + .if defined(AP_CUR_VERSION) -VERSION_CHECK!= eval `${ECHO_CMD} "[ ${AP_VERSION} -eq ${AP_CUR_VERSION} ]" | ${SED} -e 's/- -eq/ -ge/ ; s/+ -eq/ -le/' ` ; ${ECHO_CMD} $${?} -. if ${VERSION_CHECK} == 1 -.if !defined(AP_IGNORE_VERSION_CHECK) -IGNORE= ${_ERROR_MSG} apache${AP_CUR_VERSION} is installed (or APACHE_PORT is defined) and port requires ${USE_APACHE} -.endif -. endif +. if !empty(_APACHE_VERSION_MINIMUM) && (${AP_CUR_VERSION} < ${_APACHE_VERSION_MINIMUM}) +_APACHE_VERSION_NONSUPPORTED= ${_APACHE_VERSION_MINIMUM} at least +. elif !empty(_APACHE_VERSION_MAXIMUM) && (${AP_CUR_VERSION} > ${_APACHE_VERSION_MAXIMUM}) +_APACHE_VERSION_NONSUPPORTED= ${_APACHE_VERSION_MAXIMUM} at most +. endif +. if defined(_APACHE_VERSION_NONSUPPORTED) && !defined(AP_IGNORE_VERSION_CHECK) +IGNORE= ${_ERROR_MSG} apache ${AP_CUR_VERSION} is installed (or APACHE_PORT is defined) and port requires ${_APACHE_VERSION_NONSUPPORTED} +. endif APACHE_VERSION= ${AP_CUR_VERSION} .else +# no apache installed AP_CUR_VERSION= none -. if !defined(APACHE_PORT) -#Fallback to smallest version... -APACHE_VERSION= ${AP_VERSION:C/\+//} -. endif -.endif +. if !defined(APACHE_PORT) +. if defined(AP_PLUS) +APACHE_VERSION= ${DEFAULT_APACHE_VERSION} +. else +# fallback to preferred version... +. for ver in ${APACHE_SUPPORTED_VERSION} +__VER= ${ver} +. if !defined(APACHE_VERSION) && \ + !(!empty(_APACHE_VERSION_MINIMUM) && ( ${__VER} < ${_APACHE_VERSION_MINIMUM} )) && \ + !(!empty(_APACHE_VERSION_MAXIMUM) && ( ${__VER} > ${_APACHE_VERSION_MAXIMUM} )) +APACHE_VERSION= ${ver} +. endif +. endfor +. endif +. endif +.endif # AP_CUR_VERSION .if exists(${APXS}) APXS_PREFIX!= ${APXS} -q prefix 2> /dev/null || echo NULL @@ -325,9 +369,9 @@ AP_EXTRAS+= -L ${AP_LIB} .endif -.endif - +.endif # End of AP_PORT_IS_SERVER / AP_PORT_IS_MOULE .endif #!defined(Apache_Pre_Include) + .if defined(_POSTMKINCLUDED) && !defined(Apache_Post_Include) Apache_Post_Include= bsd.apache.mk Index: Mk/bsd.port.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v retrieving revision 1.676 diff -u -r1.676 bsd.port.mk --- Mk/bsd.port.mk 19 Mar 2011 21:30:34 -0000 1.676 +++ Mk/bsd.port.mk 21 Mar 2011 23:38:45 -0000 @@ -2129,7 +2129,7 @@ .include "${PORTSDIR}/Mk/bsd.wx.mk" .endif -.if defined(USE_APACHE) || defined(APACHE_COMPAT) +.if defined(USE_APACHE) .include "${PORTSDIR}/Mk/bsd.apache.mk" .endif