1 | # Copyright 1999-2007 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.39 2008/02/03 14:12:44 hollow Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.41 2008/02/06 13:16:17 hollow Exp $ |
4 | |
4 | |
5 | # @ECLASS: depend.apache.eclass |
5 | # @ECLASS: depend.apache.eclass |
6 | # @MAINTAINER: apache-devs@gentoo.org |
6 | # @MAINTAINER: apache-devs@gentoo.org |
7 | # @BLURB: Functions to allow ebuilds to depend on apache |
7 | # @BLURB: Functions to allow ebuilds to depend on apache |
8 | # @DESCRIPTION: |
8 | # @DESCRIPTION: |
9 | # This eclass handles depending on apache in a sane way and providing |
9 | # This eclass handles depending on apache in a sane way and provides information |
10 | # information about where certain interfaces are located. |
10 | # about where certain binaries and configuration files are located. |
11 | # |
11 | # |
12 | # @NOTE: If you use this, be sure you use the need_* call after you have defined |
12 | # To make use of this eclass simply call one of the need/want_apache functions |
|
|
13 | # described below. Make sure you use the need/want_apache call after you have |
13 | # DEPEND and RDEPEND. Also note that you can not rely on the automatic |
14 | # defined DEPEND and RDEPEND. Also note that you can not rely on the automatic |
14 | # RDEPEND=DEPEND that portage does if you use this eclass. |
15 | # RDEPEND=DEPEND that portage does if you use this eclass. |
15 | # |
16 | # |
16 | # See bug 107127 for more information. |
17 | # See Bug 107127 for more information. |
|
|
18 | # |
|
|
19 | # @EXAMPLE: |
|
|
20 | # |
|
|
21 | # Here is an example of an ebuild depending on apache: |
|
|
22 | # |
|
|
23 | # @CODE |
|
|
24 | # DEPEND="virtual/Perl-CGI" |
|
|
25 | # RDEPEND="${DEPEND}" |
|
|
26 | # need_apache2 |
|
|
27 | # @CODE |
|
|
28 | # |
|
|
29 | # Another example which demonstrates non-standard IUSE options for optional |
|
|
30 | # apache support: |
|
|
31 | # |
|
|
32 | # @CODE |
|
|
33 | # DEPEND="server? ( virtual/Perl-CGI )" |
|
|
34 | # RDEPEND="${DEPEND}" |
|
|
35 | # want_apache2 server |
|
|
36 | # @CODE |
17 | |
37 | |
18 | inherit multilib |
38 | inherit multilib |
19 | |
39 | |
20 | # ============================================================================== |
40 | # ============================================================================== |
21 | # INTERNAL VARIABLES |
41 | # INTERNAL VARIABLES |
22 | # ============================================================================== |
42 | # ============================================================================== |
23 | |
43 | |
24 | # @ECLASS-VARIABLE: APACHE_VERSION |
44 | # @ECLASS-VARIABLE: APACHE_VERSION |
25 | # @DESCRIPTION: |
45 | # @DESCRIPTION: |
26 | # Stores the version of apache we are going to be ebuilding. This variable is |
46 | # Stores the version of apache we are going to be ebuilding. |
27 | # set by the need_apache functions. |
47 | # This variable is set by the want/need_apache functions. |
28 | |
48 | |
29 | # @ECLASS-VARIABLE: APXS |
49 | # @ECLASS-VARIABLE: APXS |
30 | # @DESCRIPTION: |
50 | # @DESCRIPTION: |
31 | # Paths to the apxs tool |
51 | # Path to the apxs tool. |
|
|
52 | # This variable is set by the want/need_apache functions. |
32 | |
53 | |
|
|
54 | # @ECLASS-VARIABLE: APACHE_BIN |
|
|
55 | # @DESCRIPTION: |
|
|
56 | # Path to the apache binary. |
|
|
57 | # This variable is set by the want/need_apache functions. |
|
|
58 | |
33 | # @ECLASS-VARIABLE: APACHECTL |
59 | # @ECLASS-VARIABLE: APACHE_CTL |
34 | # @DESCRIPTION: |
60 | # @DESCRIPTION: |
35 | # Path to the apachectl tool |
61 | # Path to the apachectl tool. |
|
|
62 | # This variable is set by the want/need_apache functions. |
36 | |
63 | |
37 | # @ECLASS-VARIABLE: APACHE_BASEDIR |
64 | # @ECLASS-VARIABLE: APACHE_BASEDIR |
38 | # @DESCRIPTION: |
65 | # @DESCRIPTION: |
39 | # Path to the server root directory |
66 | # Path to the server root directory. |
|
|
67 | # This variable is set by the want/need_apache functions. |
40 | |
68 | |
41 | # @ECLASS-VARIABLE: APACHE_CONFDIR |
69 | # @ECLASS-VARIABLE: APACHE_CONFDIR |
42 | # @DESCRIPTION: |
70 | # @DESCRIPTION: |
43 | # Path to the configuration file directory |
71 | # Path to the configuration file directory. |
|
|
72 | # This variable is set by the want/need_apache functions. |
44 | |
73 | |
45 | # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR |
74 | # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR |
46 | # @DESCRIPTION: |
75 | # @DESCRIPTION: |
47 | # Path where module configuration files are kept |
76 | # Path where module configuration files are kept. |
|
|
77 | # This variable is set by the want/need_apache functions. |
48 | |
78 | |
49 | # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR |
79 | # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR |
50 | # @DESCRIPTION: |
80 | # @DESCRIPTION: |
51 | # Path where virtual host configuration files are kept |
81 | # Path where virtual host configuration files are kept. |
|
|
82 | # This variable is set by the want/need_apache functions. |
52 | |
83 | |
53 | # @ECLASS-VARIABLE: APACHE_MODULESDIR |
84 | # @ECLASS-VARIABLE: APACHE_MODULESDIR |
54 | # @DESCRIPTION: |
85 | # @DESCRIPTION: |
55 | # Path where we install modules |
86 | # Path where we install modules. |
|
|
87 | # This variable is set by the want/need_apache functions. |
56 | |
88 | |
57 | # @ECLASS-VARIABLE: APACHE_DEPEND |
89 | # @ECLASS-VARIABLE: APACHE_DEPEND |
58 | # @DESCRIPTION: |
90 | # @DESCRIPTION: |
59 | # Dependencies for Apache |
91 | # Dependencies for Apache |
60 | APACHE_DEPEND="www-servers/apache" |
92 | APACHE_DEPEND="www-servers/apache" |
… | |
… | |
99 | # ============================================================================== |
131 | # ============================================================================== |
100 | # PUBLIC FUNCTIONS |
132 | # PUBLIC FUNCTIONS |
101 | # ============================================================================== |
133 | # ============================================================================== |
102 | |
134 | |
103 | # @FUNCTION: want_apache |
135 | # @FUNCTION: want_apache |
|
|
136 | # @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] |
104 | # @DESCRIPTION: |
147 | # @DESCRIPTION: |
105 | # An ebuild calls this to get the dependency information for optional apache-2.x |
148 | # An ebuild calls this to get the dependency information for optional apache-2.x |
106 | # support. |
149 | # support. If the myiuse parameter is not given it defaults to apache2. |
107 | want_apache2() { |
150 | want_apache2() { |
108 | debug-print-function $FUNCNAME $* |
151 | debug-print-function $FUNCNAME $* |
109 | |
152 | |
110 | local myiuse=${1:-apache2} |
153 | local myiuse=${1:-apache2} |
111 | IUSE="${IUSE} ${myiuse}" |
154 | IUSE="${IUSE} ${myiuse}" |
… | |
… | |
117 | else |
160 | else |
118 | _init_no_apache |
161 | _init_no_apache |
119 | fi |
162 | fi |
120 | } |
163 | } |
121 | |
164 | |
122 | # @FUNCTION: want_apache |
165 | # @FUNCTION: want_apache2_2 |
|
|
166 | # @USAGE: [myiuse] |
123 | # @DESCRIPTION: |
167 | # @DESCRIPTION: |
124 | # An ebuild calls this to get the dependency information for optional |
168 | # An ebuild calls this to get the dependency information for optional |
125 | # apache-2.2.x support. |
169 | # apache-2.2.x support. If the myiuse parameter is not given it defaults to |
|
|
170 | # apache2. |
126 | want_apache2_2() { |
171 | want_apache2_2() { |
127 | debug-print-function $FUNCNAME $* |
172 | debug-print-function $FUNCNAME $* |
128 | |
173 | |
129 | local myiuse=${1:-apache2} |
174 | local myiuse=${1:-apache2} |
130 | IUSE="${IUSE} ${myiuse}" |
175 | IUSE="${IUSE} ${myiuse}" |
… | |
… | |
136 | else |
181 | else |
137 | _init_no_apache |
182 | _init_no_apache |
138 | fi |
183 | fi |
139 | } |
184 | } |
140 | |
185 | |
141 | # @FUNCTION: want_apache |
186 | # @FUNCTION: need_apache |
142 | # @DESCRIPTION: |
187 | # @DESCRIPTION: |
143 | # An ebuild calls this to get the dependency information for optional apache |
188 | # An ebuild calls this to get the dependency information for apache. |
144 | # support. |
|
|
145 | want_apache() { |
189 | need_apache() { |
146 | debug-print-function $FUNCNAME $* |
190 | debug-print-function $FUNCNAME $* |
147 | want_apache2 "$@" |
191 | need_apache2 |
148 | } |
192 | } |
149 | |
193 | |
150 | # @FUNCTION: need_apache2 |
194 | # @FUNCTION: need_apache2 |
151 | # @DESCRIPTION: |
195 | # @DESCRIPTION: |
152 | # Works like need_apache, but its used by modules that only support |
196 | # An ebuild calls this to get the dependency information for apache-2.x. |
153 | # apache 2.x and do not work with other versions. |
|
|
154 | need_apache2() { |
197 | need_apache2() { |
155 | debug-print-function $FUNCNAME $* |
198 | debug-print-function $FUNCNAME $* |
156 | |
199 | |
157 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
200 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
158 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
201 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
159 | _init_apache2 |
202 | _init_apache2 |
160 | } |
203 | } |
161 | |
204 | |
162 | # @FUNCTION: need_apache2_2 |
205 | # @FUNCTION: need_apache2_2 |
163 | # @DESCRIPTION: |
206 | # @DESCRIPTION: |
164 | # Works like need_apache, but its used by modules that only support |
207 | # An ebuild calls this to get the dependency information for apache-2.2.x. |
165 | # apache 2.2.x and do not work with other versions. |
|
|
166 | need_apache2_2() { |
208 | need_apache2_2() { |
167 | debug-print-function $FUNCNAME $* |
209 | debug-print-function $FUNCNAME $* |
168 | |
210 | |
169 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
211 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
170 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
212 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
171 | _init_apache2 |
213 | _init_apache2 |
172 | } |
214 | } |
173 | |
215 | |
174 | # @FUNCTION: need_apache |
216 | # @FUNCTION: check_apache_threads |
|
|
217 | # @USAGE: [myflag] |
175 | # @DESCRIPTION: |
218 | # @DESCRIPTION: |
176 | # An ebuild calls this to get the dependency information for apache. An |
219 | # An ebuild calls this to make sure thread-safety is enabled if apache has been |
177 | # ebuild should use this in order for future changes to the build infrastructure |
220 | # built with a threaded MPM. If the myflag parameter is not given it defaults to |
178 | # to happen seamlessly. All an ebuild needs to do is include the line |
221 | # threads. |
179 | # need_apache somewhere. |
222 | check_apache_threads() { |
180 | need_apache() { |
|
|
181 | debug-print-function $FUNCNAME $* |
223 | debug-print-function $FUNCNAME $* |
182 | need_apache2 |
224 | |
|
|
225 | if ! built_with_use www-servers/apache threads ; then |
|
|
226 | return |
|
|
227 | fi |
|
|
228 | |
|
|
229 | local myflag="${1:-threads}" |
|
|
230 | |
|
|
231 | if ! use ${myflag}; then |
|
|
232 | echo |
|
|
233 | eerror "You need to enable USE flag '${myflag}' to build a thread-safe version" |
|
|
234 | eerror "of ${CATEGORY}/${PN} for use with www-servers/apache" |
|
|
235 | die "Need missing USE flag '${myflag}'" |
|
|
236 | fi |
183 | } |
237 | } |