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

Contents of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.34 - (hide annotations) (download)
Sat Sep 8 14:06:12 2007 UTC (6 years, 10 months ago) by hollow
Branch: MAIN
Changes since 1.33: +50 -4 lines
add functions to get the right apr/apu-config

1 chtekk 1.30 # Copyright 1999-2007 Gentoo Foundation
2 stuart 1.20 # Distributed under the terms of the GNU General Public License v2
3 hollow 1.34 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.33 2007/07/29 16:36:23 phreak Exp $
4 vericgar 1.22
5     inherit multilib
6 stuart 1.2
7 vericgar 1.25 # 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 swegener 1.26 # defined DEPEND and RDEPEND. Also note that you can not rely on the
12 vericgar 1.25 # automatic RDEPEND=DEPEND that portage does if you use this eclass.
13     # See bug 107127 for more information.
14    
15 urilith 1.6 ######
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 chtekk 1.30 ## Stores the version of apache we are going to be ebuilding. This variable is
27 urilith 1.6 ## set by the need_apache{|1|2} functions.
28 vericgar 1.9 ##
29 urilith 1.6 ####
30 chtekk 1.30 #APACHE_VERSION="2"
31 urilith 1.6
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 vericgar 1.24 APACHE1_BASEDIR="/usr/$(get_libdir)/apache"
54     APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
55 urilith 1.6
56     ####
57     ## APACHE1_CONFDIR, APACHE2_CONFDIR
58     ##
59 chtekk 1.30 ## Paths to the configuration file directories
60 urilith 1.6 ####
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 vericgar 1.21 ## APACHE1_VHOSTDIR, APACHE2_VHOSTDIR
74 urilith 1.6 ##
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 vericgar 1.28 ## APACHE2_0_DEPEND, APACHE2_2_DEPEND
91 urilith 1.6 ##
92 chtekk 1.30 ## Dependencies for Apache 1.x and Apache 2.x
93 urilith 1.6 ####
94 phreak 1.33 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 vericgar 1.7
99 vericgar 1.9 ####
100 vericgar 1.28 ## NEED_APACHE_DEPEND
101 vericgar 1.9 ##
102     ## Dependency magic based on useflags to use the right DEPEND
103 swegener 1.29 ## If you change this, please check the DEPENDS in need_apache()
104 vericgar 1.9 ####
105    
106 chtekk 1.31 NEED_APACHE_DEPEND="${APACHE2_DEPEND}"
107 chtekk 1.30 WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
108 stuart 1.20
109     ####
110 hollow 1.34 ## apr_config/apu_config
111     ##
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 chtekk 1.30 # uses_apache1() - !!! DEPRECATED !!!
157 stuart 1.20 ####
158    
159     uses_apache1() {
160 vericgar 1.28 debug-print-function $FUNCNAME $*
161     # WARNING: Do not use these variables with anything that is put
162     # into the dependency cache (DEPEND/RDEPEND/etc)
163 chtekk 1.30 APACHE_VERSION="1"
164     APXS="${APXS1}"
165 hollow 1.34 USE_APACHE="1"
166 stuart 1.20 APACHECTL="${APACHECTL1}"
167     APACHE_BASEDIR="${APACHE1_BASEDIR}"
168     APACHE_CONFDIR="${APACHE1_CONFDIR}"
169     APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}"
170     APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}"
171     APACHE_MODULESDIR="${APACHE1_MODULESDIR}"
172     }
173    
174     ####
175     # uses_apache2()
176     #
177     # sets up all of the environment variables required by an apache2 module
178     ####
179    
180     uses_apache2() {
181 vericgar 1.28 debug-print-function $FUNCNAME $*
182     # WARNING: Do not use these variables with anything that is put
183     # into the dependency cache (DEPEND/RDEPEND/etc)
184 chtekk 1.30 APACHE_VERSION="2"
185 hollow 1.34 USE_APACHE="2"
186 chtekk 1.30 APXS="${APXS2}"
187 stuart 1.20 APACHECTL="${APACHECTL2}"
188     APACHE_BASEDIR="${APACHE2_BASEDIR}"
189     APACHE_CONFDIR="${APACHE2_CONFDIR}"
190     APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}"
191     APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}"
192     APACHE_MODULESDIR="${APACHE2_MODULESDIR}"
193     }
194    
195     doesnt_use_apache() {
196 vericgar 1.28 debug-print-function $FUNCNAME $*
197 chtekk 1.30 APACHE_VERSION="0"
198 hollow 1.34 USE_APACHE="0"
199 stuart 1.20 }
200 vericgar 1.9
201 urilith 1.6 ####
202 chtekk 1.30 ## need_apache1 - !!! DEPRECATED !!!
203 urilith 1.6 ####
204     need_apache1() {
205 vericgar 1.28 debug-print-function $FUNCNAME $*
206 stuart 1.1
207 urilith 1.6 DEPEND="${DEPEND} ${APACHE1_DEPEND}"
208 vericgar 1.10 RDEPEND="${RDEPEND} ${APACHE1_DEPEND}"
209 chtekk 1.30 APACHE_VERSION="1"
210 stuart 1.1 }
211    
212 urilith 1.6 ####
213     ## need_apache2
214     ##
215     ## An ebuild calls this to get the dependency information
216 chtekk 1.30 ## for apache-2.x. An ebuild should use this in order for
217 urilith 1.6 ## future changes to the build infrastructure to happen
218 chtekk 1.30 ## seamlessly. All an ebuild needs to do is include the
219 vericgar 1.28 ## line need_apache2 somewhere.
220 urilith 1.6 ####
221     need_apache2() {
222 vericgar 1.28 debug-print-function $FUNCNAME $*
223 stuart 1.1
224 urilith 1.6 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
225 vericgar 1.10 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
226 chtekk 1.30 APACHE_VERSION="2"
227 stuart 1.1 }
228    
229 vericgar 1.9 ####
230 vericgar 1.28 ## 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 chtekk 1.30 ## higher versions.
235 vericgar 1.28 ##
236     ####
237     need_apache2_0() {
238     debug-print-function $FUNCNAME $*
239    
240     DEPEND="${DEPEND} ${APACHE2_0_DEPEND}"
241     RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}"
242 chtekk 1.30 APACHE_VERSION="2"
243 vericgar 1.28 }
244    
245     ####
246     ## need_apache2_2
247     ##
248     ## Works like need_apache2 above, but its used by modules
249 chtekk 1.30 ## that only support apache 2.2 and do not work with
250     ## lower versions.
251 vericgar 1.28 ##
252     ####
253     need_apache2_2() {
254     debug-print-function $FUNCNAME $*
255    
256     DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
257     RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
258 chtekk 1.30 APACHE_VERSION="2"
259 vericgar 1.28 }
260    
261     ####
262 swegener 1.18 ## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT
263 chtekk 1.30 ## WILL HAVE ON THE CACHE!
264 vericgar 1.28 ##
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 chtekk 1.31 ## Currently supported versions: 2.0 2.2 2.x
271     ####
272 urilith 1.6 need_apache() {
273 vericgar 1.28 debug-print-function $FUNCNAME $*
274 stuart 1.1
275 chtekk 1.32 local supports2x supports20 supports22
276 vericgar 1.28
277 chtekk 1.30 if [[ $# -eq 0 ]] ; then
278     supports2x="yes"
279 stuart 1.20 else
280 chtekk 1.30 while [[ $# -gt 0 ]] ; do
281 vericgar 1.28 case "$1" in
282 chtekk 1.30 2.0) supports20="yes"; shift;;
283     2.2) supports22="yes"; shift;;
284     2.x) supports2x="yes"; shift;;
285     *) die "Unknown version specifier: $1";;
286 vericgar 1.28 esac
287     done
288     fi
289    
290 chtekk 1.30 if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then
291 chtekk 1.32 supports2x="yes"
292 vericgar 1.28 fi
293 swegener 1.29
294 vericgar 1.28 debug-print "supports20: ${supports20}"
295     debug-print "supports22: ${supports22}"
296     debug-print "supports2x: ${supports2x}"
297 swegener 1.29
298 chtekk 1.31 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 stuart 1.20 fi
305 chtekk 1.32
306     uses_apache2
307 stuart 1.20 }
308    
309     want_apache() {
310 vericgar 1.28 debug-print-function $FUNCNAME $*
311 stuart 1.20
312 chtekk 1.30 IUSE="${IUSE} apache2"
313 stuart 1.20 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
314 chtekk 1.27 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
315 chtekk 1.30 if use apache2 ; then
316 stuart 1.20 uses_apache2
317 urilith 1.6 else
318 stuart 1.20 doesnt_use_apache
319 stuart 1.1 fi
320     }

  ViewVC Help
Powered by ViewVC 1.1.20