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

Contents of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (show annotations) (download)
Sat May 12 02:28:51 2007 UTC (7 years, 3 months ago) by chtekk
Branch: MAIN
Changes since 1.29: +51 -67 lines
Update for Apache 1.X masking.

1 # Copyright 1999-2007 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
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="=net-www/apache-1*"
95 APACHE2_DEPEND="=net-www/apache-2*"
96 APACHE2_0_DEPEND="=net-www/apache-2.0*"
97 APACHE2_2_DEPEND="=net-www/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? ( ${APACHE2_DEPEND} ) !apache2? ( ${APACHE1_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 ## If both 1.3 and 2.x are specified, the apache2 USE-flag will be used in
225 ## DEPEND/RDEPEND to determine which version to use.
226 ##
227 ## Currently supported versions: 1.3 2.0 2.2 2.x
228 need_apache() {
229 debug-print-function $FUNCNAME $*
230
231 local supports13 supports20 supports22 supports2x
232
233 if [[ $# -eq 0 ]] ; then
234 supports13="yes"
235 supports2x="yes"
236 else
237 while [[ $# -gt 0 ]] ; do
238 case "$1" in
239 1.3) supports13="yes"; shift;;
240 2.0) supports20="yes"; shift;;
241 2.2) supports22="yes"; shift;;
242 2.x) supports2x="yes"; shift;;
243 *) die "Unknown version specifier: $1";;
244 esac
245 done
246 fi
247
248 if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then
249 supports2x="yes";
250 fi
251
252 debug-print "supports13: ${supports13}"
253 debug-print "supports20: ${supports20}"
254 debug-print "supports22: ${supports22}"
255 debug-print "supports2x: ${supports2x}"
256
257 if [[ "${supports13}" != "yes" ]] ; then
258 if [[ "${supports2x}" == "yes" ]] ; then
259 need_apache2
260 elif [[ "${supports20}" == "yes" ]] ; then
261 need_apache2_0
262 elif [[ "${supports22}" == "yes" ]] ; then
263 need_apache2_2
264 fi
265 elif [[ "${supports13}" == "yes" ]] ; then
266 if [[ "${supports2x}" == "yes" || "${supports20}" == "yes" || "${supports22}" == "yes" ]] ; then
267 # We support both apache-1.3 and apache-2.*, set up USE-flag based
268 # DEPEND and RDEPEND, determined by which apache-2.x we support
269 IUSE="${IUSE} apache2"
270
271 if [[ "${supports2x}" != "yes" ]] ; then
272 if [[ "${supports20}" == "yes" ]] ; then
273 NEED_APACHE_DEPEND="apache2? ( ${APACHE2_0_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
274 elif [[ "${supports22}" == "yes" ]] ; then
275 NEED_APACHE_DEPEND="apache2? ( ${APACHE2_2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
276 fi
277 fi
278
279 DEPEND="${DEPEND} ${NEED_APACHE_DEPEND}"
280 RDEPEND="${RDEPEND} ${NEED_APACHE_DEPEND}"
281
282 if use apache2 ; then
283 uses_apache2
284 else
285 uses_apache1
286 fi
287 else
288 need_apache1
289 fi
290 fi
291 }
292
293 want_apache() {
294 debug-print-function $FUNCNAME $*
295
296 IUSE="${IUSE} apache2"
297 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
298 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
299 if use apache2 ; then
300 uses_apache2
301 else
302 doesnt_use_apache
303 fi
304 }

  ViewVC Help
Powered by ViewVC 1.1.20