diff options
Diffstat (limited to 'apache1-removal/eclass/depend.apache.eclass')
-rw-r--r-- | apache1-removal/eclass/depend.apache.eclass | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/apache1-removal/eclass/depend.apache.eclass b/apache1-removal/eclass/depend.apache.eclass new file mode 100644 index 0000000..5380be3 --- /dev/null +++ b/apache1-removal/eclass/depend.apache.eclass @@ -0,0 +1,254 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit multilib + +# This eclass handles depending on apache in a sane way and providing +# information about where certain interfaces are located. + +# NOTE: If you use this, be sure you use the need_* call after you have +# defined DEPEND and RDEPEND. Also note that you can not rely on the +# automatic RDEPEND=DEPEND that portage does if you use this eclass. +# See bug 107127 for more information. + +###### +## Apache Common Variables +## +## These are internal variables used by this, and other apache-related eclasses, +## and thus should not need to be used by the ebuilds themselves (the ebuilds +## should know what version of Apache they are building against). +###### + +#### +## APACHE_VERSION +## +## Stores the version of apache we are going to be ebuilding. This variable is +## set by the need_apache{|1|2} functions. +## +#### +#APACHE_VERSION="2" + +#### +## APXS2 +## +## Paths to the apxs tools +#### +APXS2="/usr/sbin/apxs2" + +#### +## APACHECTL2 +## +## Paths to the apachectl tools +#### +APACHECTL2="/usr/sbin/apache2ctl" + +#### +## APACHE2_BASEDIR +## +## Paths to the server root directories +#### +APACHE2_BASEDIR="/usr/$(get_libdir)/apache2" + +#### +## APACHE2_CONFDIR +## +## Paths to the configuration file directories +#### +APACHE2_CONFDIR="/etc/apache2" + +#### +## APACHE2_MODULES_CONFDIR +## +## Paths where module configuration files are kept +#### +APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" + +#### +## APACHE2_VHOSTDIR +## +## Paths where virtual host configuration files are kept +#### +APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" + +#### +## APACHE2_MODULESDIR +## +## Paths where we install modules +#### +APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" + +#### +## APACHE2_DEPEND, APACHE2_0_DEPEND, APACHE2_2_DEPEND +## +## Dependencies for Apache 2.x +#### +APACHE2_DEPEND="=net-www/apache-2*" +APACHE2_0_DEPEND="=net-www/apache-2.0*" +APACHE2_2_DEPEND="=net-www/apache-2.2*" + +#### +## NEED_APACHE_DEPEND +## +## Dependency magic based on useflags to use the right DEPEND +## If you change this, please check the DEPENDS in need_apache() +#### + +NEED_APACHE_DEPEND="${APACHE2_DEPEND}" +WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )" + +#### +# uses_apache1() - !!! DEPRECATED !!! +#### + +uses_apache1() { + debug-print-function $FUNCNAME $* + + echo "Apache 1.X support is deprecated! Please migrate to Apache 2.X!" +} + +#### +# uses_apache2() +# +# sets up all of the environment variables required by an apache2 module +#### + +uses_apache2() { + debug-print-function $FUNCNAME $* + # WARNING: Do not use these variables with anything that is put + # into the dependency cache (DEPEND/RDEPEND/etc) + APACHE_VERSION="2" + USE_APACHE2="2" + APXS="${APXS2}" + APACHECTL="${APACHECTL2}" + APACHE_BASEDIR="${APACHE2_BASEDIR}" + APACHE_CONFDIR="${APACHE2_CONFDIR}" + APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" + APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" + APACHE_MODULESDIR="${APACHE2_MODULESDIR}" +} + +doesnt_use_apache() { + debug-print-function $FUNCNAME $* + APACHE_VERSION="0" + USE_APACHE="" +} + +#### +## need_apache1 - !!! DEPRECATED !!! +#### +need_apache1() { + debug-print-function $FUNCNAME $* + + echo "Apache 1.X support is deprecated! Please migrate to Apache 2.X!" +} + +#### +## need_apache2 +## +## An ebuild calls this to get the dependency information +## for apache-2.x. An ebuild should use this in order for +## future changes to the build infrastructure to happen +## seamlessly. All an ebuild needs to do is include the +## line need_apache2 somewhere. +#### +need_apache2() { + debug-print-function $FUNCNAME $* + + DEPEND="${DEPEND} ${APACHE2_DEPEND}" + RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" + APACHE_VERSION="2" +} + +#### +## need_apache2_0 +## +## Works like need_apache2 above, but its used by modules +## that only support apache 2.0 and do not work with +## higher versions. +## +#### +need_apache2_0() { + debug-print-function $FUNCNAME $* + + DEPEND="${DEPEND} ${APACHE2_0_DEPEND}" + RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}" + APACHE_VERSION="2" +} + +#### +## need_apache2_2 +## +## Works like need_apache2 above, but its used by modules +## that only support apache 2.2 and do not work with +## lower versions. +## +#### +need_apache2_2() { + debug-print-function $FUNCNAME $* + + DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" + RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" + APACHE_VERSION="2" +} + +#### +## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT +## WILL HAVE ON THE CACHE! +## +## This function can take a variable amount of arguments specifying the +## versions of apache the ebuild supports +## +## If no arguments are specified, then all versions are assumed to be supported +## +## If both 1.3 and 2.x are specified, the apache2 USE-flag will be used in +## DEPEND/RDEPEND to determine which version to use. +## +## Currently supported versions: 1.3 2.0 2.2 2.x +need_apache() { + debug-print-function $FUNCNAME $* + + local supports20 supports22 supports2x + + if [[ $# -eq 0 ]] ; then + supports2x="yes" + else + while [[ $# -gt 0 ]] ; do + case "$1" in + 2.0) supports20="yes"; shift;; + 2.2) supports22="yes"; shift;; + 2.x) supports2x="yes"; shift;; + *) die "Unknown version specifier: $1";; + esac + done + fi + + if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then + supports2x="yes"; + fi + + debug-print "supports20: ${supports20}" + debug-print "supports22: ${supports22}" + debug-print "supports2x: ${supports2x}" + + if [[ "${supports2x}" == "yes" ]] ; then + need_apache2 + elif [[ "${supports20}" == "yes" ]] ; then + need_apache2_0 + elif [[ "${supports22}" == "yes" ]] ; then + need_apache2_2 + fi +} + +want_apache() { + debug-print-function $FUNCNAME $* + + IUSE="${IUSE} apache2" + DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" + RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}" + if useq apache2 ; then + uses_apache2 + else + doesnt_use_apache + fi +} |