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.35 |
# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.34 2007/09/08 14:06:12 hollow Exp $ |
4 |
stuart |
1.2 |
|
5 |
hollow |
1.35 |
# @ECLASS: depend.apache.eclass |
6 |
|
|
# @MAINTAINER: apache-devs@gentoo.org |
7 |
|
|
# @BLURB: Functions to allow ebuilds to depend on apache |
8 |
|
|
# @DESCRIPTION: |
9 |
vericgar |
1.25 |
# This eclass handles depending on apache in a sane way and providing |
10 |
|
|
# information about where certain interfaces are located. |
11 |
hollow |
1.35 |
# |
12 |
|
|
# @NOTE: If you use this, be sure you use the need_* call after you have defined |
13 |
|
|
# 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 |
|
|
# |
16 |
|
|
# See bug 107127 for more information. |
17 |
vericgar |
1.25 |
|
18 |
hollow |
1.35 |
inherit multilib |
19 |
vericgar |
1.25 |
|
20 |
hollow |
1.35 |
# ============================================================================== |
21 |
|
|
# INTERNAL VARIABLES |
22 |
|
|
# ============================================================================== |
23 |
|
|
|
24 |
|
|
# @ECLASS-VARIABLE: APACHE_VERSION |
25 |
|
|
# @DESCRIPTION: |
26 |
|
|
# Stores the version of apache we are going to be ebuilding. This variable is |
27 |
|
|
# set by the need_apache functions. |
28 |
chtekk |
1.30 |
#APACHE_VERSION="2" |
29 |
urilith |
1.6 |
|
30 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APXS2 |
31 |
|
|
# @DESCRIPTION: |
32 |
|
|
# Paths to the apxs tool |
33 |
urilith |
1.6 |
APXS2="/usr/sbin/apxs2" |
34 |
|
|
|
35 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHECTL2 |
36 |
|
|
# @DESCRIPTION: |
37 |
|
|
# Path to the apachectl tool |
38 |
urilith |
1.6 |
APACHECTL2="/usr/sbin/apache2ctl" |
39 |
|
|
|
40 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_BASEDIR |
41 |
|
|
# @DESCRIPTION: |
42 |
|
|
# Path to the server root directory |
43 |
vericgar |
1.24 |
APACHE2_BASEDIR="/usr/$(get_libdir)/apache2" |
44 |
urilith |
1.6 |
|
45 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_CONFDIR |
46 |
|
|
# @DESCRIPTION: |
47 |
|
|
# Path to the configuration file directory |
48 |
urilith |
1.6 |
APACHE2_CONFDIR="/etc/apache2" |
49 |
|
|
|
50 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_MODULES_CONFDIR |
51 |
|
|
# @DESCRIPTION: |
52 |
|
|
# Path where module configuration files are kept |
53 |
urilith |
1.6 |
APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
54 |
|
|
|
55 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_VHOSTDIR |
56 |
|
|
# @DESCRIPTION: |
57 |
|
|
# Path where virtual host configuration files are kept |
58 |
urilith |
1.6 |
APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
59 |
|
|
|
60 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_MODULESDIR |
61 |
|
|
# @DESCRIPTION: |
62 |
|
|
# Path where we install modules |
63 |
urilith |
1.6 |
APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
64 |
|
|
|
65 |
hollow |
1.35 |
# @ECLASS-VARIABLE: APACHE2_DEPEND |
66 |
|
|
# @DESCRIPTION: |
67 |
|
|
# Dependencies for Apache 2.x |
68 |
phreak |
1.33 |
APACHE2_DEPEND="=www-servers/apache-2*" |
69 |
hollow |
1.35 |
|
70 |
|
|
# @ECLASS-VARIABLE: APACHE2_0_DEPEND |
71 |
|
|
# @DESCRIPTION: |
72 |
|
|
# Dependencies for Apache 2.0.x |
73 |
phreak |
1.33 |
APACHE2_0_DEPEND="=www-servers/apache-2.0*" |
74 |
hollow |
1.35 |
|
75 |
|
|
# @ECLASS-VARIABLE: APACHE2_2_DEPEND |
76 |
|
|
# @DESCRIPTION: |
77 |
|
|
# Dependencies for Apache 2.2.x |
78 |
phreak |
1.33 |
APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
79 |
vericgar |
1.7 |
|
80 |
hollow |
1.35 |
# @ECLASS-VARIABLE: WANT_APACHE_DEPEND |
81 |
|
|
# @DESCRIPTION: |
82 |
|
|
# Dependency magic based on useflag to use the right DEPEND |
83 |
chtekk |
1.30 |
WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )" |
84 |
stuart |
1.20 |
|
85 |
hollow |
1.35 |
# ============================================================================== |
86 |
|
|
# INTERNAL FUNCTIONS |
87 |
|
|
# ============================================================================== |
88 |
|
|
|
89 |
|
|
# @FUNCTION: uses_apache2 |
90 |
|
|
# @DESCRIPTION: |
91 |
|
|
# sets up all of the environment variables required for an apache2 module |
92 |
|
|
uses_apache2() { |
93 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
94 |
stuart |
1.20 |
|
95 |
vericgar |
1.28 |
# WARNING: Do not use these variables with anything that is put |
96 |
|
|
# into the dependency cache (DEPEND/RDEPEND/etc) |
97 |
chtekk |
1.30 |
APACHE_VERSION="2" |
98 |
hollow |
1.34 |
USE_APACHE="2" |
99 |
chtekk |
1.30 |
APXS="${APXS2}" |
100 |
stuart |
1.20 |
APACHECTL="${APACHECTL2}" |
101 |
|
|
APACHE_BASEDIR="${APACHE2_BASEDIR}" |
102 |
|
|
APACHE_CONFDIR="${APACHE2_CONFDIR}" |
103 |
|
|
APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" |
104 |
|
|
APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" |
105 |
|
|
APACHE_MODULESDIR="${APACHE2_MODULESDIR}" |
106 |
|
|
} |
107 |
|
|
|
108 |
hollow |
1.35 |
# @FUNCTION: doesnt_use_apache |
109 |
|
|
# @DESCRIPTION: |
110 |
|
|
# sets up all of the environment variables required for optional apache usage |
111 |
stuart |
1.20 |
doesnt_use_apache() { |
112 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
113 |
hollow |
1.35 |
|
114 |
chtekk |
1.30 |
APACHE_VERSION="0" |
115 |
hollow |
1.34 |
USE_APACHE="0" |
116 |
stuart |
1.20 |
} |
117 |
vericgar |
1.9 |
|
118 |
hollow |
1.35 |
# ============================================================================== |
119 |
|
|
# PUBLIC FUNCTIONS |
120 |
|
|
# ============================================================================== |
121 |
|
|
|
122 |
|
|
# @FUNCTION: want_apache |
123 |
|
|
# @DESCRIPTION: |
124 |
|
|
# An ebuild calls this to get the dependency information for optional apache-2.x |
125 |
|
|
# support. |
126 |
|
|
want_apache() { |
127 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
128 |
stuart |
1.1 |
|
129 |
hollow |
1.35 |
IUSE="${IUSE} apache2" |
130 |
|
|
DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}" |
131 |
|
|
RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}" |
132 |
|
|
|
133 |
|
|
if use apache2 ; then |
134 |
|
|
uses_apache2 |
135 |
|
|
else |
136 |
|
|
doesnt_use_apache |
137 |
|
|
fi |
138 |
stuart |
1.1 |
} |
139 |
|
|
|
140 |
hollow |
1.35 |
# @FUNCTION: need_apache2 |
141 |
|
|
# @DESCRIPTION: |
142 |
|
|
# An ebuild calls this to get the dependency information for apache-2.x. An |
143 |
|
|
# ebuild should use this in order for future changes to the build infrastructure |
144 |
|
|
# to happen seamlessly. All an ebuild needs to do is include the line |
145 |
|
|
# need_apache2 somewhere. |
146 |
urilith |
1.6 |
need_apache2() { |
147 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
148 |
stuart |
1.1 |
|
149 |
urilith |
1.6 |
DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
150 |
vericgar |
1.10 |
RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
151 |
hollow |
1.35 |
uses_apache2 |
152 |
stuart |
1.1 |
} |
153 |
|
|
|
154 |
hollow |
1.35 |
# @FUNCTION: need_apache2_0 |
155 |
|
|
# @DESCRIPTION: |
156 |
|
|
# Works like need_apache2 above, but its used by modules that only support |
157 |
|
|
# apache 2.0 and do not work with higher versions. |
158 |
vericgar |
1.28 |
need_apache2_0() { |
159 |
|
|
debug-print-function $FUNCNAME $* |
160 |
|
|
|
161 |
|
|
DEPEND="${DEPEND} ${APACHE2_0_DEPEND}" |
162 |
|
|
RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}" |
163 |
hollow |
1.35 |
uses_apache2 |
164 |
vericgar |
1.28 |
} |
165 |
|
|
|
166 |
hollow |
1.35 |
# @FUNCTION: need_apache2_2 |
167 |
|
|
# @DESCRIPTION: |
168 |
|
|
# Works like need_apache2 above, but its used by modules that only support |
169 |
|
|
# apache 2.2 and do not work with lower versions. |
170 |
vericgar |
1.28 |
need_apache2_2() { |
171 |
|
|
debug-print-function $FUNCNAME $* |
172 |
|
|
|
173 |
|
|
DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
174 |
|
|
RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
175 |
hollow |
1.35 |
uses_apache2 |
176 |
vericgar |
1.28 |
} |
177 |
|
|
|
178 |
hollow |
1.35 |
# @FUNCTION: need_apache |
179 |
|
|
# @DESCRIPTION: |
180 |
|
|
# Legacy alias for need_apache2 |
181 |
urilith |
1.6 |
need_apache() { |
182 |
hollow |
1.35 |
need_apache2 |
183 |
|
|
} |
184 |
|
|
|
185 |
|
|
# @FUNCTION: apr_config |
186 |
|
|
# @DESCRIPTION: |
187 |
|
|
# Version magic to get the correct apr-config binary based on the (probably) |
188 |
|
|
# installed version of apache. This is needed to get modules to link to the |
189 |
|
|
# same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2) |
190 |
|
|
apr_config() { |
191 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
192 |
stuart |
1.1 |
|
193 |
hollow |
1.35 |
local default="${1:-1}" |
194 |
|
|
if [[ "${USE_APACHE}" == "2" ]]; then |
195 |
|
|
if has_version ${APACHE2_0_DEPEND}; then |
196 |
|
|
echo apr-config |
197 |
|
|
else |
198 |
|
|
echo apr-1-config |
199 |
|
|
fi |
200 |
stuart |
1.20 |
else |
201 |
hollow |
1.35 |
if [[ "${default}" == "0" ]]; then |
202 |
|
|
echo apr-config |
203 |
|
|
elif [[ "${default}" == "1" ]]; then |
204 |
|
|
echo apr-1-config |
205 |
|
|
else |
206 |
|
|
die "Unknown version specifier: ${default}" |
207 |
|
|
fi |
208 |
vericgar |
1.28 |
fi |
209 |
stuart |
1.20 |
} |
210 |
|
|
|
211 |
hollow |
1.35 |
# @FUNCTION: apu_config |
212 |
|
|
# @DESCRIPTION: |
213 |
|
|
# Version magic to get the correct apu-config binary based on the (probably) |
214 |
|
|
# installed version of apache. This is needed to get modules to link to the |
215 |
|
|
# same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2) |
216 |
|
|
apu_config() { |
217 |
vericgar |
1.28 |
debug-print-function $FUNCNAME $* |
218 |
stuart |
1.20 |
|
219 |
hollow |
1.35 |
local default="${1:-1}" |
220 |
|
|
if [[ "${USE_APACHE}" == "2" ]]; then |
221 |
|
|
if has_version ${APACHE2_0_DEPEND}; then |
222 |
|
|
echo apu-config |
223 |
|
|
else |
224 |
|
|
echo apu-1-config |
225 |
|
|
fi |
226 |
urilith |
1.6 |
else |
227 |
hollow |
1.35 |
if [[ "${default}" == "0" ]]; then |
228 |
|
|
echo apu-config |
229 |
|
|
elif [[ "${default}" == "1" ]]; then |
230 |
|
|
echo apu-1-config |
231 |
|
|
else |
232 |
|
|
die "Unknown version specifier: ${default}" |
233 |
|
|
fi |
234 |
stuart |
1.1 |
fi |
235 |
|
|
} |