/[gentoo-x86]/eclass/depend.apache.eclass
Gentoo

Diff of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 Revision 1.35
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2007 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.1 2004/07/16 10:48:22 stuart Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.35 2007/11/25 14:27:52 hollow Exp $
4 4
5ECLASS="depend.apache" 5# @ECLASS: depend.apache.eclass
6INHERITED="$INHERITED $ECLASS" 6# @MAINTAINER: apache-devs@gentoo.org
7IUSE="apache apache2" 7# @BLURB: Functions to allow ebuilds to depend on apache
8# @DESCRIPTION:
9# This eclass handles depending on apache in a sane way and providing
10# information about where certain interfaces are located.
11#
12# @NOTE: If you use this, be sure you use the need_* call after you have defined
13# DEPEND and RDEPEND. Also note that you can not rely on the automatic
14# RDEPEND=DEPEND that portage does if you use this eclass.
15#
16# See bug 107127 for more information.
8 17
9# call this function to work out which version of the apache web server 18inherit multilib
10# your ebuild should be installing itself to use
11 19
12detect_apache_useflags() { 20# ==============================================================================
21# INTERNAL VARIABLES
22# ==============================================================================
23
24# @ECLASS-VARIABLE: APACHE_VERSION
25# @DESCRIPTION:
26# Stores the version of apache we are going to be ebuilding. This variable is
27# set by the need_apache functions.
28#APACHE_VERSION="2"
29
30# @ECLASS-VARIABLE: APXS2
31# @DESCRIPTION:
32# Paths to the apxs tool
33APXS2="/usr/sbin/apxs2"
34
35# @ECLASS-VARIABLE: APACHECTL2
36# @DESCRIPTION:
37# Path to the apachectl tool
38APACHECTL2="/usr/sbin/apache2ctl"
39
40# @ECLASS-VARIABLE: APACHE2_BASEDIR
41# @DESCRIPTION:
42# Path to the server root directory
43APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
44
45# @ECLASS-VARIABLE: APACHE2_CONFDIR
46# @DESCRIPTION:
47# Path to the configuration file directory
48APACHE2_CONFDIR="/etc/apache2"
49
50# @ECLASS-VARIABLE: APACHE2_MODULES_CONFDIR
51# @DESCRIPTION:
52# Path where module configuration files are kept
53APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d"
54
55# @ECLASS-VARIABLE: APACHE2_VHOSTDIR
56# @DESCRIPTION:
57# Path where virtual host configuration files are kept
58APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d"
59
60# @ECLASS-VARIABLE: APACHE2_MODULESDIR
61# @DESCRIPTION:
62# Path where we install modules
63APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules"
64
65# @ECLASS-VARIABLE: APACHE2_DEPEND
66# @DESCRIPTION:
67# Dependencies for Apache 2.x
68APACHE2_DEPEND="=www-servers/apache-2*"
69
70# @ECLASS-VARIABLE: APACHE2_0_DEPEND
71# @DESCRIPTION:
72# Dependencies for Apache 2.0.x
73APACHE2_0_DEPEND="=www-servers/apache-2.0*"
74
75# @ECLASS-VARIABLE: APACHE2_2_DEPEND
76# @DESCRIPTION:
77# Dependencies for Apache 2.2.x
78APACHE2_2_DEPEND="=www-servers/apache-2.2*"
79
80# @ECLASS-VARIABLE: WANT_APACHE_DEPEND
81# @DESCRIPTION:
82# Dependency magic based on useflag to use the right DEPEND
83WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
84
85# ==============================================================================
86# INTERNAL FUNCTIONS
87# ==============================================================================
88
89# @FUNCTION: uses_apache2
90# @DESCRIPTION:
91# sets up all of the environment variables required for an apache2 module
92uses_apache2() {
93 debug-print-function $FUNCNAME $*
94
95 # WARNING: Do not use these variables with anything that is put
96 # into the dependency cache (DEPEND/RDEPEND/etc)
97 APACHE_VERSION="2"
13 USE_APACHE1= 98 USE_APACHE="2"
99 APXS="${APXS2}"
100 APACHECTL="${APACHECTL2}"
101 APACHE_BASEDIR="${APACHE2_BASEDIR}"
102 APACHE_CONFDIR="${APACHE2_CONFDIR}"
103 APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}"
104 APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}"
105 APACHE_MODULESDIR="${APACHE2_MODULESDIR}"
106}
107
108# @FUNCTION: doesnt_use_apache
109# @DESCRIPTION:
110# sets up all of the environment variables required for optional apache usage
111doesnt_use_apache() {
112 debug-print-function $FUNCNAME $*
113
114 APACHE_VERSION="0"
14 USE_APACHE2= 115 USE_APACHE="0"
15 USE_APACHE_MULTIPLE=
16
17 useq apache2 && USE_APACHE2=1
18 useq apache && USE_APACHE1=1
19
20 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1
21} 116}
22 117
23detect_apache_installed() { 118# ==============================================================================
24 HAS_APACHE1= 119# PUBLIC FUNCTIONS
25 HAS_APACHE2= 120# ==============================================================================
26 HAS_APACHE_MULTIPLE=
27 HAS_APACHE_ANY=
28 121
29 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1 122# @FUNCTION: want_apache
30 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1 123# @DESCRIPTION:
31 124# An ebuild calls this to get the dependency information for optional apache-2.x
32 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1 125# support.
33}
34
35# call this function from your pkg_setup
36
37depend_apache() { 126want_apache() {
38 detect_apache_installed 127 debug-print-function $FUNCNAME $*
39 detect_apache_useflags
40 128
41 # deal with the multiple cases first - much easier 129 IUSE="${IUSE} apache2"
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 130 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
43 echo 131 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
44 eerror "You have both the apache and apache2 USE flags set" 132
45 eerror 133 if use apache2 ; then
46 eerror "Please set only ONE of these USE flags, and try again" 134 uses_apache2
47 echo 135 else
48 die "Multiple Apache USE flags set - you can only have one set at a time" 136 doesnt_use_apache
49 fi 137 fi
138}
50 139
140# @FUNCTION: need_apache2
141# @DESCRIPTION:
142# An ebuild calls this to get the dependency information for apache-2.x. An
143# ebuild should use this in order for future changes to the build infrastructure
144# to happen seamlessly. All an ebuild needs to do is include the line
145# need_apache2 somewhere.
146need_apache2() {
147 debug-print-function $FUNCNAME $*
148
149 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
150 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
151 uses_apache2
152}
153
154# @FUNCTION: need_apache2_0
155# @DESCRIPTION:
156# Works like need_apache2 above, but its used by modules that only support
157# apache 2.0 and do not work with higher versions.
158need_apache2_0() {
159 debug-print-function $FUNCNAME $*
160
161 DEPEND="${DEPEND} ${APACHE2_0_DEPEND}"
162 RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}"
163 uses_apache2
164}
165
166# @FUNCTION: need_apache2_2
167# @DESCRIPTION:
168# Works like need_apache2 above, but its used by modules that only support
169# apache 2.2 and do not work with lower versions.
170need_apache2_2() {
171 debug-print-function $FUNCNAME $*
172
173 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
174 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
175 uses_apache2
176}
177
178# @FUNCTION: need_apache
179# @DESCRIPTION:
180# Legacy alias for need_apache2
181need_apache() {
182 need_apache2
183}
184
185# @FUNCTION: apr_config
186# @DESCRIPTION:
187# Version magic to get the correct apr-config binary based on the (probably)
188# installed version of apache. This is needed to get modules to link to the
189# same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2)
190apr_config() {
191 debug-print-function $FUNCNAME $*
192
193 local default="${1:-1}"
51 if [ -n "$USE_APACHE2" ] ; then 194 if [[ "${USE_APACHE}" == "2" ]]; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 195 if has_version ${APACHE2_0_DEPEND}; then
53 echo 196 echo apr-config
54 eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed" 197 else
55 eerror "If you really meant to upgrade to Apache v2, please install Apache v2" 198 echo apr-1-config
56 eerror "before installing $CATEGORY/${PN}-${PVR}" 199 fi
57 echo
58 die "Automatic upgrade of Apache would be forced; avoiding"
59 else 200 else
60 einfo "Apache 2 support enabled" 201 if [[ "${default}" == "0" ]]; then
61 DETECT_APACHE=2 202 echo apr-config
62 return 203 elif [[ "${default}" == "1" ]]; then
204 echo apr-1-config
205 else
206 die "Unknown version specifier: ${default}"
63 fi 207 fi
64 fi 208 fi
209}
65 210
211# @FUNCTION: apu_config
212# @DESCRIPTION:
213# Version magic to get the correct apu-config binary based on the (probably)
214# installed version of apache. This is needed to get modules to link to the
215# same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2)
216apu_config() {
217 debug-print-function $FUNCNAME $*
218
219 local default="${1:-1}"
66 if [ -n "$USE_APACHE1" ]; then 220 if [[ "${USE_APACHE}" == "2" ]]; then
67 if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then 221 if has_version ${APACHE2_0_DEPEND}; then
68 echo 222 echo apu-config
69 eerror "You have the 'apache' USE flag set, but only have a later version of" 223 else
70 eerror "Apache installed on your computer. Please use the 'apache2' USE flag" 224 echo apu-1-config
71 eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}" 225 fi
72 echo
73 die "Avoiding installing older version of Apache"
74 else 226 else
75 einfo "Apache 1 support enabled" 227 if [[ "${default}" == "0" ]]; then
76 DETECT_APACHE=1 228 echo apu-config
77 return 229 elif [[ "${default}" == "1" ]]; then
230 echo apu-1-config
231 else
232 die "Unknown version specifier: ${default}"
78 fi 233 fi
79 fi 234 fi
80} 235}
81

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.20