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

Contents of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.44 - (hide annotations) (download)
Tue Mar 4 10:59:27 2008 UTC (6 years, 6 months ago) by hollow
Branch: MAIN
Changes since 1.43: +30 -14 lines
add has_apache; cleanup

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.44 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.43 2008/02/06 23:45:13 hollow Exp $
4 stuart 1.2
5 hollow 1.35 # @ECLASS: depend.apache.eclass
6 hollow 1.44 # @MAINTAINER:
7     # apache-devs@gentoo.org
8 hollow 1.35 # @BLURB: Functions to allow ebuilds to depend on apache
9     # @DESCRIPTION:
10 hollow 1.40 # This eclass handles depending on apache in a sane way and provides information
11     # about where certain binaries and configuration files are located.
12 hollow 1.35 #
13 hollow 1.40 # To make use of this eclass simply call one of the need/want_apache functions
14     # described below. Make sure you use the need/want_apache call after you have
15     # defined DEPEND and RDEPEND. Also note that you can not rely on the automatic
16 hollow 1.35 # RDEPEND=DEPEND that portage does if you use this eclass.
17     #
18 hollow 1.40 # See Bug 107127 for more information.
19     #
20     # @EXAMPLE:
21     #
22     # Here is an example of an ebuild depending on apache:
23     #
24     # @CODE
25 hollow 1.44 # DEPEND="virtual/Perl-CGI"
26     # RDEPEND="${DEPEND}"
27     # need_apache2
28 hollow 1.40 # @CODE
29     #
30     # Another example which demonstrates non-standard IUSE options for optional
31     # apache support:
32     #
33     # @CODE
34 hollow 1.44 # DEPEND="server? ( virtual/Perl-CGI )"
35     # RDEPEND="${DEPEND}"
36     # want_apache2 server
37 hollow 1.40 # @CODE
38 vericgar 1.25
39 hollow 1.35 inherit multilib
40 vericgar 1.25
41 hollow 1.35 # ==============================================================================
42     # INTERNAL VARIABLES
43     # ==============================================================================
44    
45     # @ECLASS-VARIABLE: APACHE_VERSION
46     # @DESCRIPTION:
47 hollow 1.40 # Stores the version of apache we are going to be ebuilding.
48     # This variable is set by the want/need_apache functions.
49 urilith 1.6
50 hollow 1.36 # @ECLASS-VARIABLE: APXS
51 hollow 1.35 # @DESCRIPTION:
52 hollow 1.41 # Path to the apxs tool.
53 hollow 1.40 # This variable is set by the want/need_apache functions.
54    
55     # @ECLASS-VARIABLE: APACHE_BIN
56     # @DESCRIPTION:
57     # Path to the apache binary.
58     # This variable is set by the want/need_apache functions.
59 urilith 1.6
60 hollow 1.40 # @ECLASS-VARIABLE: APACHE_CTL
61 hollow 1.35 # @DESCRIPTION:
62 hollow 1.40 # Path to the apachectl tool.
63     # This variable is set by the want/need_apache functions.
64 urilith 1.6
65 hollow 1.36 # @ECLASS-VARIABLE: APACHE_BASEDIR
66 hollow 1.35 # @DESCRIPTION:
67 hollow 1.40 # Path to the server root directory.
68     # This variable is set by the want/need_apache functions.
69 urilith 1.6
70 hollow 1.36 # @ECLASS-VARIABLE: APACHE_CONFDIR
71 hollow 1.35 # @DESCRIPTION:
72 hollow 1.40 # Path to the configuration file directory.
73     # This variable is set by the want/need_apache functions.
74 urilith 1.6
75 hollow 1.36 # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR
76 hollow 1.35 # @DESCRIPTION:
77 hollow 1.40 # Path where module configuration files are kept.
78     # This variable is set by the want/need_apache functions.
79 urilith 1.6
80 hollow 1.36 # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR
81 hollow 1.35 # @DESCRIPTION:
82 hollow 1.40 # Path where virtual host configuration files are kept.
83     # This variable is set by the want/need_apache functions.
84 urilith 1.6
85 hollow 1.36 # @ECLASS-VARIABLE: APACHE_MODULESDIR
86 hollow 1.35 # @DESCRIPTION:
87 hollow 1.40 # Path where we install modules.
88     # This variable is set by the want/need_apache functions.
89 urilith 1.6
90 hollow 1.37 # @ECLASS-VARIABLE: APACHE_DEPEND
91     # @DESCRIPTION:
92     # Dependencies for Apache
93     APACHE_DEPEND="www-servers/apache"
94    
95 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_DEPEND
96     # @DESCRIPTION:
97     # Dependencies for Apache 2.x
98 phreak 1.33 APACHE2_DEPEND="=www-servers/apache-2*"
99 hollow 1.35
100     # @ECLASS-VARIABLE: APACHE2_2_DEPEND
101     # @DESCRIPTION:
102     # Dependencies for Apache 2.2.x
103 phreak 1.33 APACHE2_2_DEPEND="=www-servers/apache-2.2*"
104 vericgar 1.7
105 hollow 1.35 # ==============================================================================
106     # INTERNAL FUNCTIONS
107     # ==============================================================================
108    
109 hollow 1.37 _init_apache2() {
110 vericgar 1.28 debug-print-function $FUNCNAME $*
111 stuart 1.20
112 vericgar 1.28 # WARNING: Do not use these variables with anything that is put
113     # into the dependency cache (DEPEND/RDEPEND/etc)
114 chtekk 1.30 APACHE_VERSION="2"
115 hollow 1.36 APXS="/usr/sbin/apxs2"
116 hollow 1.38 APACHE_BIN="/usr/sbin/apache2"
117     APACHE_CTL="/usr/sbin/apache2ctl"
118 hollow 1.42 APACHE_INCLUDEDIR="/usr/include/apache2"
119 hollow 1.36 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
120     APACHE_CONFDIR="/etc/apache2"
121     APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
122     APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
123     APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
124 stuart 1.20 }
125    
126 hollow 1.37 _init_no_apache() {
127 vericgar 1.28 debug-print-function $FUNCNAME $*
128 chtekk 1.30 APACHE_VERSION="0"
129 stuart 1.20 }
130 vericgar 1.9
131 hollow 1.35 # ==============================================================================
132     # PUBLIC FUNCTIONS
133     # ==============================================================================
134    
135     # @FUNCTION: want_apache
136 hollow 1.40 # @USAGE: [myiuse]
137     # @DESCRIPTION:
138     # An ebuild calls this to get the dependency information for optional apache
139     # support. If the myiuse parameter is not given it defaults to apache2.
140     want_apache() {
141     debug-print-function $FUNCNAME $*
142     want_apache2 "$@"
143     }
144    
145     # @FUNCTION: want_apache2
146     # @USAGE: [myiuse]
147 hollow 1.35 # @DESCRIPTION:
148     # An ebuild calls this to get the dependency information for optional apache-2.x
149 hollow 1.40 # support. If the myiuse parameter is not given it defaults to apache2.
150 hollow 1.37 want_apache2() {
151 vericgar 1.28 debug-print-function $FUNCNAME $*
152 stuart 1.1
153 hollow 1.39 local myiuse=${1:-apache2}
154     IUSE="${IUSE} ${myiuse}"
155     DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
156     RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
157 hollow 1.35
158 hollow 1.44 if use ${myiuse}; then
159 hollow 1.37 _init_apache2
160 hollow 1.35 else
161 hollow 1.37 _init_no_apache
162 hollow 1.35 fi
163 stuart 1.1 }
164    
165 hollow 1.40 # @FUNCTION: want_apache2_2
166     # @USAGE: [myiuse]
167 hollow 1.35 # @DESCRIPTION:
168 hollow 1.37 # An ebuild calls this to get the dependency information for optional
169 hollow 1.40 # apache-2.2.x support. If the myiuse parameter is not given it defaults to
170     # apache2.
171 hollow 1.37 want_apache2_2() {
172 vericgar 1.28 debug-print-function $FUNCNAME $*
173 stuart 1.1
174 hollow 1.39 local myiuse=${1:-apache2}
175     IUSE="${IUSE} ${myiuse}"
176     DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
177     RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
178 hollow 1.37
179 hollow 1.44 if use ${myiuse}; then
180 hollow 1.37 _init_apache2
181     else
182     _init_no_apache
183     fi
184     }
185    
186 hollow 1.40 # @FUNCTION: need_apache
187 hollow 1.37 # @DESCRIPTION:
188 hollow 1.40 # An ebuild calls this to get the dependency information for apache.
189     need_apache() {
190 hollow 1.39 debug-print-function $FUNCNAME $*
191 hollow 1.40 need_apache2
192 stuart 1.1 }
193    
194 hollow 1.37 # @FUNCTION: need_apache2
195 hollow 1.35 # @DESCRIPTION:
196 hollow 1.40 # An ebuild calls this to get the dependency information for apache-2.x.
197 hollow 1.37 need_apache2() {
198 vericgar 1.28 debug-print-function $FUNCNAME $*
199    
200 hollow 1.37 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
201     RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
202     _init_apache2
203 vericgar 1.28 }
204    
205 hollow 1.35 # @FUNCTION: need_apache2_2
206     # @DESCRIPTION:
207 hollow 1.40 # An ebuild calls this to get the dependency information for apache-2.2.x.
208 vericgar 1.28 need_apache2_2() {
209     debug-print-function $FUNCNAME $*
210    
211     DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
212     RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
213 hollow 1.37 _init_apache2
214 vericgar 1.28 }
215 hollow 1.41
216 hollow 1.44 # @FUNCTION: has_apache
217     # @DESCRIPTION:
218     # An ebuild calls this to get runtime variables for an indirect apache
219     # dependency without USE-flag, in which case want_apache does not work.
220     # DO NOT call this function in global scope.
221     has_apache() {
222     debug-print-function $FUNCNAME $*
223    
224     if has_version '>=www-servers/apache-2'; then
225     _init_apache2
226     else
227     _init_no_apache
228     fi
229     }
230    
231 hollow 1.43 # @FUNCTION: has_apache_threads
232 hollow 1.41 # @USAGE: [myflag]
233     # @DESCRIPTION:
234     # An ebuild calls this to make sure thread-safety is enabled if apache has been
235     # built with a threaded MPM. If the myflag parameter is not given it defaults to
236     # threads.
237 hollow 1.43 has_apache_threads() {
238 hollow 1.41 debug-print-function $FUNCNAME $*
239    
240 hollow 1.44 if ! built_with_use www-servers/apache threads; then
241 hollow 1.41 return
242     fi
243    
244     local myflag="${1:-threads}"
245    
246 hollow 1.44 if ! use ${myflag}; then
247 hollow 1.41 echo
248     eerror "You need to enable USE flag '${myflag}' to build a thread-safe version"
249     eerror "of ${CATEGORY}/${PN} for use with www-servers/apache"
250     die "Need missing USE flag '${myflag}'"
251     fi
252     }
253 hollow 1.42
254 hollow 1.43 # @FUNCTION: has_apache_threads_in
255 hollow 1.42 # @USAGE: <myforeign> [myflag]
256     # @DESCRIPTION:
257     # An ebuild calls this to make sure thread-safety is enabled in a foreign
258     # package if apache has been built with a threaded MPM. If the myflag parameter
259     # is not given it defaults to threads.
260 hollow 1.43 has_apache_threads_in() {
261 hollow 1.42 debug-print-function $FUNCNAME $*
262    
263 hollow 1.44 if ! built_with_use www-servers/apache threads; then
264 hollow 1.42 return
265     fi
266    
267     local myforeign="$1"
268     local myflag="${2:-threads}"
269    
270 hollow 1.44 if ! built_with_use ${myforeign} ${myflag}; then
271 hollow 1.42 echo
272     eerror "You need to enable USE flag '${myflag}' in ${myforeign} to"
273     eerror "build a thread-safe version of ${CATEGORY}/${PN} for use"
274     eerror "with www-servers/apache"
275     die "Need missing USE flag '${myflag}' in ${myforeign}"
276     fi
277     }

  ViewVC Help
Powered by ViewVC 1.1.20