1 |
# Copyright 1999-2007 Gentoo Foundation |
2 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.32 2007/05/13 20:11:37 chtekk Exp $ |
4 |
|
5 |
inherit multilib |
6 |
|
7 |
# This eclass handles depending on apache in a sane way and providing |
8 |
# information about where certain interfaces are located. |
9 |
|
10 |
# NOTE: If you use this, be sure you use the need_* call after you have |
11 |
# defined DEPEND and RDEPEND. Also note that you can not rely on the |
12 |
# automatic RDEPEND=DEPEND that portage does if you use this eclass. |
13 |
# See bug 107127 for more information. |
14 |
|
15 |
###### |
16 |
## Apache Common Variables |
17 |
## |
18 |
## These are internal variables used by this, and other apache-related eclasses, |
19 |
## and thus should not need to be used by the ebuilds themselves (the ebuilds |
20 |
## should know what version of Apache they are building against). |
21 |
###### |
22 |
|
23 |
#### |
24 |
## APACHE_VERSION |
25 |
## |
26 |
## Stores the version of apache we are going to be ebuilding. This variable is |
27 |
## set by the need_apache{|1|2} functions. |
28 |
## |
29 |
#### |
30 |
#APACHE_VERSION="2" |
31 |
|
32 |
#### |
33 |
## APXS1, APXS2 |
34 |
## |
35 |
## Paths to the apxs tools |
36 |
#### |
37 |
APXS1="/usr/sbin/apxs" |
38 |
APXS2="/usr/sbin/apxs2" |
39 |
|
40 |
#### |
41 |
## APACHECTL1, APACHECTL2 |
42 |
## |
43 |
## Paths to the apachectl tools |
44 |
#### |
45 |
APACHECTL1="/usr/sbin/apachectl" |
46 |
APACHECTL2="/usr/sbin/apache2ctl" |
47 |
|
48 |
#### |
49 |
## APACHE1_BASEDIR, APACHE2_BASEDIR |
50 |
## |
51 |
## Paths to the server root directories |
52 |
#### |
53 |
APACHE1_BASEDIR="/usr/$(get_libdir)/apache" |
54 |
APACHE2_BASEDIR="/usr/$(get_libdir)/apache2" |
55 |
|
56 |
#### |
57 |
## APACHE1_CONFDIR, APACHE2_CONFDIR |
58 |
## |
59 |
## Paths to the configuration file directories |
60 |
#### |
61 |
APACHE1_CONFDIR="/etc/apache" |
62 |
APACHE2_CONFDIR="/etc/apache2" |
63 |
|
64 |
#### |
65 |
## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR |
66 |
## |
67 |
## Paths where module configuration files are kept |
68 |
#### |
69 |
APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d" |
70 |
APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
71 |
|
72 |
#### |
73 |
## APACHE1_VHOSTDIR, APACHE2_VHOSTDIR |
74 |
## |
75 |
## Paths where virtual host configuration files are kept |
76 |
#### |
77 |
APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d" |
78 |
APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
79 |
|
80 |
#### |
81 |
## APACHE1_MODULESDIR, APACHE2_MODULESDIR |
82 |
## |
83 |
## Paths where we install modules |
84 |
#### |
85 |
APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules" |
86 |
APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
87 |
|
88 |
#### |
89 |
## APACHE1_DEPEND, APACHE2_DEPEND |
90 |
## APACHE2_0_DEPEND, APACHE2_2_DEPEND |
91 |
## |
92 |
## Dependencies for Apache 1.x and Apache 2.x |
93 |
#### |
94 |
APACHE1_DEPEND="=www-servers/apache-1*" |
95 |
APACHE2_DEPEND="=www-servers/apache-2*" |
96 |
APACHE2_0_DEPEND="=www-servers/apache-2.0*" |
97 |
APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
98 |
|
99 |
#### |
100 |
## NEED_APACHE_DEPEND |
101 |
## |
102 |
## Dependency magic based on useflags to use the right DEPEND |
103 |
## If you change this, please check the DEPENDS in need_apache() |
104 |
#### |
105 |
|
106 |
NEED_APACHE_DEPEND="${APACHE2_DEPEND}" |
107 |
WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )" |
108 |
|
109 |
#### |
110 |
# uses_apache1() - !!! DEPRECATED !!! |
111 |
#### |
112 |
|
113 |
uses_apache1() { |
114 |
debug-print-function $FUNCNAME $* |
115 |
# WARNING: Do not use these variables with anything that is put |
116 |
# into the dependency cache (DEPEND/RDEPEND/etc) |
117 |
APACHE_VERSION="1" |
118 |
APXS="${APXS1}" |
119 |
USE_APACHE2="" |
120 |
APACHECTL="${APACHECTL1}" |
121 |
APACHE_BASEDIR="${APACHE1_BASEDIR}" |
122 |
APACHE_CONFDIR="${APACHE1_CONFDIR}" |
123 |
APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}" |
124 |
APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}" |
125 |
APACHE_MODULESDIR="${APACHE1_MODULESDIR}" |
126 |
} |
127 |
|
128 |
#### |
129 |
# uses_apache2() |
130 |
# |
131 |
# sets up all of the environment variables required by an apache2 module |
132 |
#### |
133 |
|
134 |
uses_apache2() { |
135 |
debug-print-function $FUNCNAME $* |
136 |
# WARNING: Do not use these variables with anything that is put |
137 |
# into the dependency cache (DEPEND/RDEPEND/etc) |
138 |
APACHE_VERSION="2" |
139 |
USE_APACHE2="2" |
140 |
APXS="${APXS2}" |
141 |
APACHECTL="${APACHECTL2}" |
142 |
APACHE_BASEDIR="${APACHE2_BASEDIR}" |
143 |
APACHE_CONFDIR="${APACHE2_CONFDIR}" |
144 |
APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" |
145 |
APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" |
146 |
APACHE_MODULESDIR="${APACHE2_MODULESDIR}" |
147 |
} |
148 |
|
149 |
doesnt_use_apache() { |
150 |
debug-print-function $FUNCNAME $* |
151 |
APACHE_VERSION="0" |
152 |
USE_APACHE="" |
153 |
} |
154 |
|
155 |
#### |
156 |
## need_apache1 - !!! DEPRECATED !!! |
157 |
#### |
158 |
need_apache1() { |
159 |
debug-print-function $FUNCNAME $* |
160 |
|
161 |
DEPEND="${DEPEND} ${APACHE1_DEPEND}" |
162 |
RDEPEND="${RDEPEND} ${APACHE1_DEPEND}" |
163 |
APACHE_VERSION="1" |
164 |
} |
165 |
|
166 |
#### |
167 |
## need_apache2 |
168 |
## |
169 |
## An ebuild calls this to get the dependency information |
170 |
## for apache-2.x. An ebuild should use this in order for |
171 |
## future changes to the build infrastructure to happen |
172 |
## seamlessly. All an ebuild needs to do is include the |
173 |
## line need_apache2 somewhere. |
174 |
#### |
175 |
need_apache2() { |
176 |
debug-print-function $FUNCNAME $* |
177 |
|
178 |
DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
179 |
RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
180 |
APACHE_VERSION="2" |
181 |
} |
182 |
|
183 |
#### |
184 |
## need_apache2_0 |
185 |
## |
186 |
## Works like need_apache2 above, but its used by modules |
187 |
## that only support apache 2.0 and do not work with |
188 |
## higher versions. |
189 |
## |
190 |
#### |
191 |
need_apache2_0() { |
192 |
debug-print-function $FUNCNAME $* |
193 |
|
194 |
DEPEND="${DEPEND} ${APACHE2_0_DEPEND}" |
195 |
RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}" |
196 |
APACHE_VERSION="2" |
197 |
} |
198 |
|
199 |
#### |
200 |
## need_apache2_2 |
201 |
## |
202 |
## Works like need_apache2 above, but its used by modules |
203 |
## that only support apache 2.2 and do not work with |
204 |
## lower versions. |
205 |
## |
206 |
#### |
207 |
need_apache2_2() { |
208 |
debug-print-function $FUNCNAME $* |
209 |
|
210 |
DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
211 |
RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
212 |
APACHE_VERSION="2" |
213 |
} |
214 |
|
215 |
#### |
216 |
## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT |
217 |
## WILL HAVE ON THE CACHE! |
218 |
## |
219 |
## This function can take a variable amount of arguments specifying the |
220 |
## versions of apache the ebuild supports |
221 |
## |
222 |
## If no arguments are specified, then all versions are assumed to be supported |
223 |
## |
224 |
## Currently supported versions: 2.0 2.2 2.x |
225 |
#### |
226 |
need_apache() { |
227 |
debug-print-function $FUNCNAME $* |
228 |
|
229 |
local supports2x supports20 supports22 |
230 |
|
231 |
if [[ $# -eq 0 ]] ; then |
232 |
supports2x="yes" |
233 |
else |
234 |
while [[ $# -gt 0 ]] ; do |
235 |
case "$1" in |
236 |
2.0) supports20="yes"; shift;; |
237 |
2.2) supports22="yes"; shift;; |
238 |
2.x) supports2x="yes"; shift;; |
239 |
*) die "Unknown version specifier: $1";; |
240 |
esac |
241 |
done |
242 |
fi |
243 |
|
244 |
if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then |
245 |
supports2x="yes" |
246 |
fi |
247 |
|
248 |
debug-print "supports20: ${supports20}" |
249 |
debug-print "supports22: ${supports22}" |
250 |
debug-print "supports2x: ${supports2x}" |
251 |
|
252 |
if [[ "${supports2x}" == "yes" ]] ; then |
253 |
need_apache2 |
254 |
elif [[ "${supports20}" == "yes" ]] ; then |
255 |
need_apache2_0 |
256 |
elif [[ "${supports22}" == "yes" ]] ; then |
257 |
need_apache2_2 |
258 |
fi |
259 |
|
260 |
uses_apache2 |
261 |
} |
262 |
|
263 |
want_apache() { |
264 |
debug-print-function $FUNCNAME $* |
265 |
|
266 |
IUSE="${IUSE} apache2" |
267 |
DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" |
268 |
RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}" |
269 |
if use apache2 ; then |
270 |
uses_apache2 |
271 |
else |
272 |
doesnt_use_apache |
273 |
fi |
274 |
} |