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

Contents of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.41 - (show annotations) (download)
Wed Feb 6 13:16:17 2008 UTC (6 years, 9 months ago) by hollow
Branch: MAIN
Changes since 1.40: +25 -2 lines
add check_apache_threads()

1 # Copyright 1999-2007 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.40 2008/02/06 08:33:47 hollow Exp $
4
5 # @ECLASS: depend.apache.eclass
6 # @MAINTAINER: apache-devs@gentoo.org
7 # @BLURB: Functions to allow ebuilds to depend on apache
8 # @DESCRIPTION:
9 # This eclass handles depending on apache in a sane way and provides information
10 # about where certain binaries and configuration files are located.
11 #
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
14 # defined DEPEND and RDEPEND. Also note that you can not rely on the automatic
15 # RDEPEND=DEPEND that portage does if you use this eclass.
16 #
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
37
38 inherit multilib
39
40 # ==============================================================================
41 # INTERNAL VARIABLES
42 # ==============================================================================
43
44 # @ECLASS-VARIABLE: APACHE_VERSION
45 # @DESCRIPTION:
46 # Stores the version of apache we are going to be ebuilding.
47 # This variable is set by the want/need_apache functions.
48
49 # @ECLASS-VARIABLE: APXS
50 # @DESCRIPTION:
51 # Path to the apxs tool.
52 # This variable is set by the want/need_apache functions.
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
59 # @ECLASS-VARIABLE: APACHE_CTL
60 # @DESCRIPTION:
61 # Path to the apachectl tool.
62 # This variable is set by the want/need_apache functions.
63
64 # @ECLASS-VARIABLE: APACHE_BASEDIR
65 # @DESCRIPTION:
66 # Path to the server root directory.
67 # This variable is set by the want/need_apache functions.
68
69 # @ECLASS-VARIABLE: APACHE_CONFDIR
70 # @DESCRIPTION:
71 # Path to the configuration file directory.
72 # This variable is set by the want/need_apache functions.
73
74 # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR
75 # @DESCRIPTION:
76 # Path where module configuration files are kept.
77 # This variable is set by the want/need_apache functions.
78
79 # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR
80 # @DESCRIPTION:
81 # Path where virtual host configuration files are kept.
82 # This variable is set by the want/need_apache functions.
83
84 # @ECLASS-VARIABLE: APACHE_MODULESDIR
85 # @DESCRIPTION:
86 # Path where we install modules.
87 # This variable is set by the want/need_apache functions.
88
89 # @ECLASS-VARIABLE: APACHE_DEPEND
90 # @DESCRIPTION:
91 # Dependencies for Apache
92 APACHE_DEPEND="www-servers/apache"
93
94 # @ECLASS-VARIABLE: APACHE2_DEPEND
95 # @DESCRIPTION:
96 # Dependencies for Apache 2.x
97 APACHE2_DEPEND="=www-servers/apache-2*"
98
99 # @ECLASS-VARIABLE: APACHE2_2_DEPEND
100 # @DESCRIPTION:
101 # Dependencies for Apache 2.2.x
102 APACHE2_2_DEPEND="=www-servers/apache-2.2*"
103
104 # ==============================================================================
105 # INTERNAL FUNCTIONS
106 # ==============================================================================
107
108 _init_apache2() {
109 debug-print-function $FUNCNAME $*
110
111 # WARNING: Do not use these variables with anything that is put
112 # into the dependency cache (DEPEND/RDEPEND/etc)
113 APACHE_VERSION="2"
114 APXS="/usr/sbin/apxs2"
115 APACHE_BIN="/usr/sbin/apache2"
116 APACHE_CTL="/usr/sbin/apache2ctl"
117 # legacy alias
118 APACHECTL="${APACHE_CTL}"
119 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 }
125
126 _init_no_apache() {
127 debug-print-function $FUNCNAME $*
128 APACHE_VERSION="0"
129 }
130
131 # ==============================================================================
132 # PUBLIC FUNCTIONS
133 # ==============================================================================
134
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]
147 # @DESCRIPTION:
148 # An ebuild calls this to get the dependency information for optional apache-2.x
149 # support. If the myiuse parameter is not given it defaults to apache2.
150 want_apache2() {
151 debug-print-function $FUNCNAME $*
152
153 local myiuse=${1:-apache2}
154 IUSE="${IUSE} ${myiuse}"
155 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
156 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
157
158 if use ${myiuse} ; then
159 _init_apache2
160 else
161 _init_no_apache
162 fi
163 }
164
165 # @FUNCTION: want_apache2_2
166 # @USAGE: [myiuse]
167 # @DESCRIPTION:
168 # An ebuild calls this to get the dependency information for optional
169 # apache-2.2.x support. If the myiuse parameter is not given it defaults to
170 # apache2.
171 want_apache2_2() {
172 debug-print-function $FUNCNAME $*
173
174 local myiuse=${1:-apache2}
175 IUSE="${IUSE} ${myiuse}"
176 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
177 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
178
179 if use ${myiuse} ; then
180 _init_apache2
181 else
182 _init_no_apache
183 fi
184 }
185
186 # @FUNCTION: need_apache
187 # @DESCRIPTION:
188 # An ebuild calls this to get the dependency information for apache.
189 need_apache() {
190 debug-print-function $FUNCNAME $*
191 need_apache2
192 }
193
194 # @FUNCTION: need_apache2
195 # @DESCRIPTION:
196 # An ebuild calls this to get the dependency information for apache-2.x.
197 need_apache2() {
198 debug-print-function $FUNCNAME $*
199
200 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
201 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
202 _init_apache2
203 }
204
205 # @FUNCTION: need_apache2_2
206 # @DESCRIPTION:
207 # An ebuild calls this to get the dependency information for apache-2.2.x.
208 need_apache2_2() {
209 debug-print-function $FUNCNAME $*
210
211 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
212 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
213 _init_apache2
214 }
215
216 # @FUNCTION: check_apache_threads
217 # @USAGE: [myflag]
218 # @DESCRIPTION:
219 # An ebuild calls this to make sure thread-safety is enabled if apache has been
220 # built with a threaded MPM. If the myflag parameter is not given it defaults to
221 # threads.
222 check_apache_threads() {
223 debug-print-function $FUNCNAME $*
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
237 }

  ViewVC Help
Powered by ViewVC 1.1.20