1 | # Copyright 1999-2005 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.20 2005/09/04 10:54:53 stuart Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.34 2007/09/08 14:06:12 hollow 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. |
4 | |
14 | |
5 | ###### |
15 | ###### |
6 | ## Apache Common Variables |
16 | ## Apache Common Variables |
7 | ## |
17 | ## |
8 | ## These are internal variables used by this, and other apache-related eclasses, |
18 | ## These are internal variables used by this, and other apache-related eclasses, |
… | |
… | |
11 | ###### |
21 | ###### |
12 | |
22 | |
13 | #### |
23 | #### |
14 | ## APACHE_VERSION |
24 | ## APACHE_VERSION |
15 | ## |
25 | ## |
16 | ## Stores the version of apache we are going to be ebuilding. This variable is |
26 | ## Stores the version of apache we are going to be ebuilding. This variable is |
17 | ## set by the need_apache{|1|2} functions. |
27 | ## set by the need_apache{|1|2} functions. |
18 | ## |
28 | ## |
19 | ## This needs to stay as '1' until apache2 is on by default -- although it |
|
|
20 | ## doesn't matter much as it's set by the need_apache functions. |
|
|
21 | #### |
29 | #### |
22 | APACHE_VERSION='1' |
30 | #APACHE_VERSION="2" |
23 | |
31 | |
24 | #### |
32 | #### |
25 | ## APXS1, APXS2 |
33 | ## APXS1, APXS2 |
26 | ## |
34 | ## |
27 | ## Paths to the apxs tools |
35 | ## Paths to the apxs tools |
… | |
… | |
40 | #### |
48 | #### |
41 | ## APACHE1_BASEDIR, APACHE2_BASEDIR |
49 | ## APACHE1_BASEDIR, APACHE2_BASEDIR |
42 | ## |
50 | ## |
43 | ## Paths to the server root directories |
51 | ## Paths to the server root directories |
44 | #### |
52 | #### |
45 | APACHE1_BASEDIR="/usr/lib/apache" |
53 | APACHE1_BASEDIR="/usr/$(get_libdir)/apache" |
46 | APACHE2_BASEDIR="/usr/lib/apache2" |
54 | APACHE2_BASEDIR="/usr/$(get_libdir)/apache2" |
47 | |
55 | |
48 | #### |
56 | #### |
49 | ## APACHE1_CONFDIR, APACHE2_CONFDIR |
57 | ## APACHE1_CONFDIR, APACHE2_CONFDIR |
50 | ## |
58 | ## |
51 | ## Paths to the configuration file directories (usually under |
59 | ## Paths to the configuration file directories |
52 | ## $APACHE?_BASEDIR/conf) |
|
|
53 | #### |
60 | #### |
54 | APACHE1_CONFDIR="/etc/apache" |
61 | APACHE1_CONFDIR="/etc/apache" |
55 | APACHE2_CONFDIR="/etc/apache2" |
62 | APACHE2_CONFDIR="/etc/apache2" |
56 | |
63 | |
57 | #### |
64 | #### |
… | |
… | |
61 | #### |
68 | #### |
62 | APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d" |
69 | APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d" |
63 | APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
70 | APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
64 | |
71 | |
65 | #### |
72 | #### |
66 | ## APACHE1_MODULES_VHOSTDIR, APACHE2_MODULES_VHOSTDIR |
73 | ## APACHE1_VHOSTDIR, APACHE2_VHOSTDIR |
67 | ## |
74 | ## |
68 | ## Paths where virtual host configuration files are kept |
75 | ## Paths where virtual host configuration files are kept |
69 | #### |
76 | #### |
70 | APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d" |
77 | APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d" |
71 | APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
78 | APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
… | |
… | |
78 | APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules" |
85 | APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules" |
79 | APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
86 | APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
80 | |
87 | |
81 | #### |
88 | #### |
82 | ## APACHE1_DEPEND, APACHE2_DEPEND |
89 | ## APACHE1_DEPEND, APACHE2_DEPEND |
|
|
90 | ## APACHE2_0_DEPEND, APACHE2_2_DEPEND |
83 | ## |
91 | ## |
84 | ## Dependencies for apache 1.x and apache 2.x |
92 | ## Dependencies for Apache 1.x and Apache 2.x |
85 | ## - apache2 must be at least version 2.0.52-r3, this is lowest version |
|
|
86 | ## containing our new overall changes -- trapni (Jan 21 2005) |
|
|
87 | ## - apache1 must be at least version 1.3.33-r1, but how to |
|
|
88 | ## define the DEPEND here? (FIXME) -- trapni (Jan 21 2005) |
|
|
89 | ## - currently not possible - bug #4315 -- vericgar (Jan 21 2005) |
|
|
90 | #### |
93 | #### |
91 | APACHE1_DEPEND="=net-www/apache-1*" |
94 | APACHE1_DEPEND="=www-servers/apache-1*" |
92 | APACHE2_DEPEND=">=net-www/apache-2.0.54-r10" |
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*" |
93 | |
98 | |
94 | #### |
99 | #### |
95 | ## APACHE_DEPEND |
100 | ## NEED_APACHE_DEPEND |
96 | ## |
101 | ## |
97 | ## Dependency magic based on useflags to use the right DEPEND |
102 | ## Dependency magic based on useflags to use the right DEPEND |
|
|
103 | ## If you change this, please check the DEPENDS in need_apache() |
98 | #### |
104 | #### |
99 | |
105 | |
100 | NEED_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )" |
106 | NEED_APACHE_DEPEND="${APACHE2_DEPEND}" |
101 | WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( apache? ( ${APACHE1_DEPEND} ) )" |
107 | WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )" |
102 | |
108 | |
103 | #### |
109 | #### |
104 | # uses_apache1() |
110 | ## apr_config/apu_config |
105 | # |
111 | ## |
106 | # sets up all of the environment variables required by an apache1 module |
112 | ## Version magic to get the correct apr-config/apu-config |
|
|
113 | ## based on the (probably) installed version of apache. |
|
|
114 | ## This is needed to get modules to link to the same apr/apu |
|
|
115 | ## as apache (i.e. link 0.9 for 2.0, 1.x for 2.2) |
|
|
116 | #### |
|
|
117 | apr_config() { |
|
|
118 | local default="${1:-1}" |
|
|
119 | if [[ "${USE_APACHE}" == "2" ]]; then |
|
|
120 | if has_version ${APACHE2_0_DEPEND}; then |
|
|
121 | echo apr-config |
|
|
122 | else |
|
|
123 | echo apr-1-config |
|
|
124 | fi |
|
|
125 | else |
|
|
126 | if [[ "${default}" == "0" ]]; then |
|
|
127 | echo apr-config |
|
|
128 | elif [[ "${default}" == "1" ]]; then |
|
|
129 | echo apr-1-config |
|
|
130 | else |
|
|
131 | die "Unknown version specifier: ${default}" |
|
|
132 | fi |
|
|
133 | fi |
|
|
134 | } |
|
|
135 | |
|
|
136 | apu_config() { |
|
|
137 | local default="${1:-1}" |
|
|
138 | if [[ "${USE_APACHE}" == "2" ]]; then |
|
|
139 | if has_version ${APACHE2_0_DEPEND}; then |
|
|
140 | echo apu-config |
|
|
141 | else |
|
|
142 | echo apu-1-config |
|
|
143 | fi |
|
|
144 | else |
|
|
145 | if [[ "${default}" == "0" ]]; then |
|
|
146 | echo apu-config |
|
|
147 | elif [[ "${default}" == "1" ]]; then |
|
|
148 | echo apu-1-config |
|
|
149 | else |
|
|
150 | die "Unknown version specifier: ${default}" |
|
|
151 | fi |
|
|
152 | fi |
|
|
153 | } |
|
|
154 | |
|
|
155 | #### |
|
|
156 | # uses_apache1() - !!! DEPRECATED !!! |
107 | #### |
157 | #### |
108 | |
158 | |
109 | uses_apache1() { |
159 | uses_apache1() { |
|
|
160 | debug-print-function $FUNCNAME $* |
|
|
161 | # WARNING: Do not use these variables with anything that is put |
|
|
162 | # into the dependency cache (DEPEND/RDEPEND/etc) |
110 | APACHE_VERSION='1' |
163 | APACHE_VERSION="1" |
111 | APXS="$APXS1" |
164 | APXS="${APXS1}" |
112 | USE_APACHE2= |
165 | USE_APACHE="1" |
113 | APACHECTL="${APACHECTL1}" |
166 | APACHECTL="${APACHECTL1}" |
114 | APACHE_BASEDIR="${APACHE1_BASEDIR}" |
167 | APACHE_BASEDIR="${APACHE1_BASEDIR}" |
115 | APACHE_CONFDIR="${APACHE1_CONFDIR}" |
168 | APACHE_CONFDIR="${APACHE1_CONFDIR}" |
116 | APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}" |
169 | APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}" |
117 | APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}" |
170 | APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}" |
… | |
… | |
123 | # |
176 | # |
124 | # sets up all of the environment variables required by an apache2 module |
177 | # sets up all of the environment variables required by an apache2 module |
125 | #### |
178 | #### |
126 | |
179 | |
127 | uses_apache2() { |
180 | uses_apache2() { |
|
|
181 | debug-print-function $FUNCNAME $* |
|
|
182 | # WARNING: Do not use these variables with anything that is put |
|
|
183 | # into the dependency cache (DEPEND/RDEPEND/etc) |
128 | APACHE_VERSION='2' |
184 | APACHE_VERSION="2" |
129 | USE_APACHE2=2 |
185 | USE_APACHE="2" |
130 | APXS="$APXS2" |
186 | APXS="${APXS2}" |
131 | APACHECTL="${APACHECTL2}" |
187 | APACHECTL="${APACHECTL2}" |
132 | APACHE_BASEDIR="${APACHE2_BASEDIR}" |
188 | APACHE_BASEDIR="${APACHE2_BASEDIR}" |
133 | APACHE_CONFDIR="${APACHE2_CONFDIR}" |
189 | APACHE_CONFDIR="${APACHE2_CONFDIR}" |
134 | APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" |
190 | APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" |
135 | APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" |
191 | APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" |
136 | APACHE_MODULESDIR="${APACHE2_MODULESDIR}" |
192 | APACHE_MODULESDIR="${APACHE2_MODULESDIR}" |
137 | } |
193 | } |
138 | |
194 | |
139 | doesnt_use_apache() { |
195 | doesnt_use_apache() { |
|
|
196 | debug-print-function $FUNCNAME $* |
140 | APACHE_VERSION='0' |
197 | APACHE_VERSION="0" |
141 | USE_APACHE= |
198 | USE_APACHE="0" |
142 | } |
199 | } |
143 | |
200 | |
144 | #### |
201 | #### |
145 | ## need_apache1 |
202 | ## need_apache1 - !!! DEPRECATED !!! |
146 | ## |
|
|
147 | ## An ebuild calls this to get the dependency information |
|
|
148 | ## for apache-1.x. An ebuild should use this in order for |
|
|
149 | ## future changes to the build infrastructure to happen |
|
|
150 | ## seamlessly. All an ebuild needs to do is include the |
|
|
151 | ## line need_apache1 somewhere. |
|
|
152 | #### |
203 | #### |
153 | need_apache1() { |
204 | need_apache1() { |
154 | debug-print-function need_apache1 |
205 | debug-print-function $FUNCNAME $* |
155 | |
206 | |
156 | DEPEND="${DEPEND} ${APACHE1_DEPEND}" |
207 | DEPEND="${DEPEND} ${APACHE1_DEPEND}" |
157 | RDEPEND="${RDEPEND} ${APACHE1_DEPEND}" |
208 | RDEPEND="${RDEPEND} ${APACHE1_DEPEND}" |
158 | APACHE_VERSION='1' |
209 | APACHE_VERSION="1" |
159 | } |
210 | } |
160 | |
211 | |
161 | #### |
212 | #### |
162 | ## need_apache2 |
213 | ## need_apache2 |
163 | ## |
214 | ## |
164 | ## An ebuild calls this to get the dependency information |
215 | ## An ebuild calls this to get the dependency information |
165 | ## for apache-2.x. An ebuild should use this in order for |
216 | ## for apache-2.x. An ebuild should use this in order for |
166 | ## future changes to the build infrastructure to happen |
217 | ## future changes to the build infrastructure to happen |
167 | ## seamlessly. All an ebuild needs to do is include the |
218 | ## seamlessly. All an ebuild needs to do is include the |
168 | ## line need_apache1 somewhere. |
219 | ## line need_apache2 somewhere. |
169 | #### |
220 | #### |
170 | need_apache2() { |
221 | need_apache2() { |
171 | debug-print-function need_apache2 |
222 | debug-print-function $FUNCNAME $* |
172 | |
223 | |
173 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
224 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
174 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
225 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
175 | APACHE_VERSION='2' |
226 | APACHE_VERSION="2" |
|
|
227 | } |
|
|
228 | |
|
|
229 | #### |
|
|
230 | ## need_apache2_0 |
|
|
231 | ## |
|
|
232 | ## Works like need_apache2 above, but its used by modules |
|
|
233 | ## that only support apache 2.0 and do not work with |
|
|
234 | ## higher versions. |
|
|
235 | ## |
|
|
236 | #### |
|
|
237 | need_apache2_0() { |
|
|
238 | debug-print-function $FUNCNAME $* |
|
|
239 | |
|
|
240 | DEPEND="${DEPEND} ${APACHE2_0_DEPEND}" |
|
|
241 | RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}" |
|
|
242 | APACHE_VERSION="2" |
|
|
243 | } |
|
|
244 | |
|
|
245 | #### |
|
|
246 | ## need_apache2_2 |
|
|
247 | ## |
|
|
248 | ## Works like need_apache2 above, but its used by modules |
|
|
249 | ## that only support apache 2.2 and do not work with |
|
|
250 | ## lower versions. |
|
|
251 | ## |
|
|
252 | #### |
|
|
253 | need_apache2_2() { |
|
|
254 | debug-print-function $FUNCNAME $* |
|
|
255 | |
|
|
256 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
|
|
257 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
|
|
258 | APACHE_VERSION="2" |
176 | } |
259 | } |
177 | |
260 | |
178 | #### |
261 | #### |
179 | ## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT |
262 | ## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT |
180 | ## WILL HAVE ON THE CACHE! There MUST be a apache2? () block in DEPEND for |
263 | ## WILL HAVE ON THE CACHE! |
181 | ## things to work correct in the dependency calculation stage. |
264 | ## |
|
|
265 | ## This function can take a variable amount of arguments specifying the |
|
|
266 | ## versions of apache the ebuild supports |
|
|
267 | ## |
|
|
268 | ## If no arguments are specified, then all versions are assumed to be supported |
|
|
269 | ## |
|
|
270 | ## Currently supported versions: 2.0 2.2 2.x |
182 | #### |
271 | #### |
183 | need_apache() { |
272 | need_apache() { |
184 | debug-print-function need_apache |
273 | debug-print-function $FUNCNAME $* |
|
|
274 | |
|
|
275 | local supports2x supports20 supports22 |
|
|
276 | |
|
|
277 | if [[ $# -eq 0 ]] ; then |
|
|
278 | supports2x="yes" |
|
|
279 | else |
|
|
280 | while [[ $# -gt 0 ]] ; do |
|
|
281 | case "$1" in |
|
|
282 | 2.0) supports20="yes"; shift;; |
|
|
283 | 2.2) supports22="yes"; shift;; |
|
|
284 | 2.x) supports2x="yes"; shift;; |
|
|
285 | *) die "Unknown version specifier: $1";; |
|
|
286 | esac |
|
|
287 | done |
|
|
288 | fi |
|
|
289 | |
|
|
290 | if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then |
|
|
291 | supports2x="yes" |
|
|
292 | fi |
|
|
293 | |
|
|
294 | debug-print "supports20: ${supports20}" |
|
|
295 | debug-print "supports22: ${supports22}" |
|
|
296 | debug-print "supports2x: ${supports2x}" |
|
|
297 | |
|
|
298 | if [[ "${supports2x}" == "yes" ]] ; then |
|
|
299 | need_apache2 |
|
|
300 | elif [[ "${supports20}" == "yes" ]] ; then |
|
|
301 | need_apache2_0 |
|
|
302 | elif [[ "${supports22}" == "yes" ]] ; then |
|
|
303 | need_apache2_2 |
|
|
304 | fi |
|
|
305 | |
|
|
306 | uses_apache2 |
|
|
307 | } |
|
|
308 | |
|
|
309 | want_apache() { |
|
|
310 | debug-print-function $FUNCNAME $* |
185 | |
311 | |
186 | IUSE="${IUSE} apache2" |
312 | IUSE="${IUSE} apache2" |
187 | DEPEND="${DEPEND} ${NEED_APACHE_DEPEND}" |
313 | DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" |
188 | RDEPEND="${RDEPEND} ${NEED_APACHE_DEPEND}" |
314 | RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}" |
189 | if useq apache2; then |
315 | if use apache2 ; then |
190 | uses_apache2 |
316 | uses_apache2 |
191 | else |
317 | else |
192 | uses_apache1 |
|
|
193 | fi |
|
|
194 | } |
|
|
195 | |
|
|
196 | want_apache() { |
|
|
197 | debug-print-function want_apache |
|
|
198 | |
|
|
199 | IUSE="${IUSE} apache apache2" |
|
|
200 | DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" |
|
|
201 | RDEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" |
|
|
202 | if useq apache2 ; then |
|
|
203 | uses_apache2 |
|
|
204 | elif useq apache ; then |
|
|
205 | uses_apache1 |
|
|
206 | else |
|
|
207 | doesnt_use_apache |
318 | doesnt_use_apache |
208 | fi |
319 | fi |
209 | } |
320 | } |