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.36 2008/02/02 12:53:52 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 providing |
10 |
# information about where certain interfaces are located. |
11 |
# |
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 |
|
18 |
inherit multilib |
19 |
|
20 |
# ============================================================================== |
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 |
|
29 |
# @ECLASS-VARIABLE: APXS |
30 |
# @DESCRIPTION: |
31 |
# Paths to the apxs tool |
32 |
|
33 |
# @ECLASS-VARIABLE: APACHECTL |
34 |
# @DESCRIPTION: |
35 |
# Path to the apachectl tool |
36 |
|
37 |
# @ECLASS-VARIABLE: APACHE_BASEDIR |
38 |
# @DESCRIPTION: |
39 |
# Path to the server root directory |
40 |
|
41 |
# @ECLASS-VARIABLE: APACHE_CONFDIR |
42 |
# @DESCRIPTION: |
43 |
# Path to the configuration file directory |
44 |
|
45 |
# @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR |
46 |
# @DESCRIPTION: |
47 |
# Path where module configuration files are kept |
48 |
|
49 |
# @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR |
50 |
# @DESCRIPTION: |
51 |
# Path where virtual host configuration files are kept |
52 |
|
53 |
# @ECLASS-VARIABLE: APACHE_MODULESDIR |
54 |
# @DESCRIPTION: |
55 |
# Path where we install modules |
56 |
|
57 |
# @ECLASS-VARIABLE: APACHE_DEPEND |
58 |
# @DESCRIPTION: |
59 |
# Dependencies for Apache |
60 |
APACHE_DEPEND="www-servers/apache" |
61 |
|
62 |
# @ECLASS-VARIABLE: APACHE2_DEPEND |
63 |
# @DESCRIPTION: |
64 |
# Dependencies for Apache 2.x |
65 |
APACHE2_DEPEND="=www-servers/apache-2*" |
66 |
|
67 |
# @ECLASS-VARIABLE: APACHE2_2_DEPEND |
68 |
# @DESCRIPTION: |
69 |
# Dependencies for Apache 2.2.x |
70 |
APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
71 |
|
72 |
# @ECLASS-VARIABLE: WANT_APACHE_DEPEND |
73 |
# @DESCRIPTION: |
74 |
# Dependency magic based on useflag to use the right DEPEND |
75 |
WANT_APACHE_DEPEND="apache2? ( ${APACHE_DEPEND} )" |
76 |
|
77 |
# @ECLASS-VARIABLE: WANT_APACHE2_DEPEND |
78 |
# @DESCRIPTION: |
79 |
# Dependency magic based on useflag to use the right DEPEND |
80 |
WANT_APACHE2_DEPEND="apache2? ( ${APACHE2_DEPEND} )" |
81 |
|
82 |
# @ECLASS-VARIABLE: WANT_APACHE2_2_DEPEND |
83 |
# @DESCRIPTION: |
84 |
# Dependency magic based on useflag to use the right DEPEND |
85 |
WANT_APACHE2_2_DEPEND="apache2? ( ${APACHE2_2_DEPEND} )" |
86 |
|
87 |
# ============================================================================== |
88 |
# INTERNAL FUNCTIONS |
89 |
# ============================================================================== |
90 |
|
91 |
_init_apache2() { |
92 |
debug-print-function $FUNCNAME $* |
93 |
|
94 |
# WARNING: Do not use these variables with anything that is put |
95 |
# into the dependency cache (DEPEND/RDEPEND/etc) |
96 |
APACHE_VERSION="2" |
97 |
APXS="/usr/sbin/apxs2" |
98 |
APACHECTL="/usr/sbin/apache2ctl" |
99 |
APACHE_BASEDIR="/usr/$(get_libdir)/apache2" |
100 |
APACHE_CONFDIR="/etc/apache2" |
101 |
APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d" |
102 |
APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d" |
103 |
APACHE_MODULESDIR="${APACHE_BASEDIR}/modules" |
104 |
} |
105 |
|
106 |
_init_no_apache() { |
107 |
debug-print-function $FUNCNAME $* |
108 |
APACHE_VERSION="0" |
109 |
} |
110 |
|
111 |
# ============================================================================== |
112 |
# PUBLIC FUNCTIONS |
113 |
# ============================================================================== |
114 |
|
115 |
# @FUNCTION: want_apache |
116 |
# @DESCRIPTION: |
117 |
# An ebuild calls this to get the dependency information for optional apache-2.x |
118 |
# support. |
119 |
want_apache2() { |
120 |
debug-print-function $FUNCNAME $* |
121 |
|
122 |
IUSE="${IUSE} apache2" |
123 |
DEPEND="${DEPEND} ${WANT_APACHE2_DEPEND}" |
124 |
RDEPEND="${RDEPEND} ${WANT_APACHE2_DEPEND}" |
125 |
|
126 |
if use apache2 ; then |
127 |
_init_apache2 |
128 |
else |
129 |
_init_no_apache |
130 |
fi |
131 |
} |
132 |
|
133 |
# @FUNCTION: want_apache |
134 |
# @DESCRIPTION: |
135 |
# An ebuild calls this to get the dependency information for optional |
136 |
# apache-2.2.x support. |
137 |
want_apache2_2() { |
138 |
debug-print-function $FUNCNAME $* |
139 |
|
140 |
IUSE="${IUSE} apache2" |
141 |
DEPEND="${DEPEND} ${WANT_APACHE2_2_DEPEND}" |
142 |
RDEPEND="${RDEPEND} ${WANT_APACHE2_2_DEPEND}" |
143 |
|
144 |
if use apache2 ; then |
145 |
_init_apache2 |
146 |
else |
147 |
_init_no_apache |
148 |
fi |
149 |
} |
150 |
|
151 |
# @FUNCTION: want_apache |
152 |
# @DESCRIPTION: |
153 |
# An ebuild calls this to get the dependency information for optional apache |
154 |
# support. |
155 |
want_apache() { |
156 |
want_apache2 |
157 |
} |
158 |
|
159 |
# @FUNCTION: need_apache2 |
160 |
# @DESCRIPTION: |
161 |
# Works like need_apache, but its used by modules that only support |
162 |
# apache 2.x and do not work with other versions. |
163 |
need_apache2() { |
164 |
debug-print-function $FUNCNAME $* |
165 |
|
166 |
DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
167 |
RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
168 |
_init_apache2 |
169 |
} |
170 |
|
171 |
# @FUNCTION: need_apache2_2 |
172 |
# @DESCRIPTION: |
173 |
# Works like need_apache, but its used by modules that only support |
174 |
# apache 2.2.x and do not work with other versions. |
175 |
need_apache2_2() { |
176 |
debug-print-function $FUNCNAME $* |
177 |
|
178 |
DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
179 |
RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
180 |
_init_apache2 |
181 |
} |
182 |
|
183 |
# @FUNCTION: need_apache |
184 |
# @DESCRIPTION: |
185 |
# An ebuild calls this to get the dependency information for apache. An |
186 |
# ebuild should use this in order for future changes to the build infrastructure |
187 |
# to happen seamlessly. All an ebuild needs to do is include the line |
188 |
# need_apache somewhere. |
189 |
need_apache() { |
190 |
need_apache2 |
191 |
} |