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

Diff of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 Revision 1.30
1# Copyright 1999-2004 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.1 2004/07/16 10:48:22 stuart Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.30 2007/05/12 02:28:51 chtekk Exp $
4 4
5ECLASS="depend.apache" 5inherit multilib
6INHERITED="$INHERITED $ECLASS"
7IUSE="apache apache2"
8 6
9# call this function to work out which version of the apache web server 7# This eclass handles depending on apache in a sane way and providing
10# your ebuild should be installing itself to use 8# information about where certain interfaces are located.
11 9
12detect_apache_useflags() { 10# NOTE: If you use this, be sure you use the need_* call after you have
13 USE_APACHE1= 11# defined DEPEND and RDEPEND. Also note that you can not rely on the
12# automatic RDEPEND=DEPEND that portage does if you use this eclass.
13# See bug 107127 for more information.
14
15######
16## Apache Common Variables
17##
18## These are internal variables used by this, and other apache-related eclasses,
19## and thus should not need to be used by the ebuilds themselves (the ebuilds
20## should know what version of Apache they are building against).
21######
22
23####
24## APACHE_VERSION
25##
26## Stores the version of apache we are going to be ebuilding. This variable is
27## set by the need_apache{|1|2} functions.
28##
29####
30#APACHE_VERSION="2"
31
32####
33## APXS1, APXS2
34##
35## Paths to the apxs tools
36####
37APXS1="/usr/sbin/apxs"
38APXS2="/usr/sbin/apxs2"
39
40####
41## APACHECTL1, APACHECTL2
42##
43## Paths to the apachectl tools
44####
45APACHECTL1="/usr/sbin/apachectl"
46APACHECTL2="/usr/sbin/apache2ctl"
47
48####
49## APACHE1_BASEDIR, APACHE2_BASEDIR
50##
51## Paths to the server root directories
52####
53APACHE1_BASEDIR="/usr/$(get_libdir)/apache"
54APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
55
56####
57## APACHE1_CONFDIR, APACHE2_CONFDIR
58##
59## Paths to the configuration file directories
60####
61APACHE1_CONFDIR="/etc/apache"
62APACHE2_CONFDIR="/etc/apache2"
63
64####
65## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR
66##
67## Paths where module configuration files are kept
68####
69APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d"
70APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d"
71
72####
73## APACHE1_VHOSTDIR, APACHE2_VHOSTDIR
74##
75## Paths where virtual host configuration files are kept
76####
77APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d"
78APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d"
79
80####
81## APACHE1_MODULESDIR, APACHE2_MODULESDIR
82##
83## Paths where we install modules
84####
85APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules"
86APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules"
87
88####
89## APACHE1_DEPEND, APACHE2_DEPEND
90## APACHE2_0_DEPEND, APACHE2_2_DEPEND
91##
92## Dependencies for Apache 1.x and Apache 2.x
93####
94APACHE1_DEPEND="=net-www/apache-1*"
95APACHE2_DEPEND="=net-www/apache-2*"
96APACHE2_0_DEPEND="=net-www/apache-2.0*"
97APACHE2_2_DEPEND="=net-www/apache-2.2*"
98
99####
100## NEED_APACHE_DEPEND
101##
102## Dependency magic based on useflags to use the right DEPEND
103## If you change this, please check the DEPENDS in need_apache()
104####
105
106NEED_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
107WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
108
109####
110# uses_apache1() - !!! DEPRECATED !!!
111####
112
113uses_apache1() {
114 debug-print-function $FUNCNAME $*
115 # WARNING: Do not use these variables with anything that is put
116 # into the dependency cache (DEPEND/RDEPEND/etc)
117 APACHE_VERSION="1"
118 APXS="${APXS1}"
14 USE_APACHE2= 119 USE_APACHE2=""
15 USE_APACHE_MULTIPLE= 120 APACHECTL="${APACHECTL1}"
16 121 APACHE_BASEDIR="${APACHE1_BASEDIR}"
17 useq apache2 && USE_APACHE2=1 122 APACHE_CONFDIR="${APACHE1_CONFDIR}"
18 useq apache && USE_APACHE1=1 123 APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}"
19 124 APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}"
20 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1 125 APACHE_MODULESDIR="${APACHE1_MODULESDIR}"
21} 126}
22 127
23detect_apache_installed() { 128####
24 HAS_APACHE1= 129# uses_apache2()
130#
131# sets up all of the environment variables required by an apache2 module
132####
133
134uses_apache2() {
135 debug-print-function $FUNCNAME $*
136 # WARNING: Do not use these variables with anything that is put
137 # into the dependency cache (DEPEND/RDEPEND/etc)
138 APACHE_VERSION="2"
25 HAS_APACHE2= 139 USE_APACHE2="2"
26 HAS_APACHE_MULTIPLE= 140 APXS="${APXS2}"
27 HAS_APACHE_ANY= 141 APACHECTL="${APACHECTL2}"
28 142 APACHE_BASEDIR="${APACHE2_BASEDIR}"
29 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1 143 APACHE_CONFDIR="${APACHE2_CONFDIR}"
30 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1 144 APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}"
31 145 APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}"
32 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1 146 APACHE_MODULESDIR="${APACHE2_MODULESDIR}"
33} 147}
34 148
35# call this function from your pkg_setup 149doesnt_use_apache() {
150 debug-print-function $FUNCNAME $*
151 APACHE_VERSION="0"
152 USE_APACHE=""
153}
36 154
155####
156## need_apache1 - !!! DEPRECATED !!!
157####
158need_apache1() {
159 debug-print-function $FUNCNAME $*
160
161 DEPEND="${DEPEND} ${APACHE1_DEPEND}"
162 RDEPEND="${RDEPEND} ${APACHE1_DEPEND}"
163 APACHE_VERSION="1"
164}
165
166####
167## need_apache2
168##
169## An ebuild calls this to get the dependency information
170## for apache-2.x. An ebuild should use this in order for
171## future changes to the build infrastructure to happen
172## seamlessly. All an ebuild needs to do is include the
173## line need_apache2 somewhere.
174####
175need_apache2() {
176 debug-print-function $FUNCNAME $*
177
178 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
179 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
180 APACHE_VERSION="2"
181}
182
183####
184## need_apache2_0
185##
186## Works like need_apache2 above, but its used by modules
187## that only support apache 2.0 and do not work with
188## higher versions.
189##
190####
191need_apache2_0() {
192 debug-print-function $FUNCNAME $*
193
194 DEPEND="${DEPEND} ${APACHE2_0_DEPEND}"
195 RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}"
196 APACHE_VERSION="2"
197}
198
199####
200## need_apache2_2
201##
202## Works like need_apache2 above, but its used by modules
203## that only support apache 2.2 and do not work with
204## lower versions.
205##
206####
207need_apache2_2() {
208 debug-print-function $FUNCNAME $*
209
210 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
211 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
212 APACHE_VERSION="2"
213}
214
215####
216## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT
217## WILL HAVE ON THE CACHE!
218##
219## This function can take a variable amount of arguments specifying the
220## versions of apache the ebuild supports
221##
222## If no arguments are specified, then all versions are assumed to be supported
223##
224## If both 1.3 and 2.x are specified, the apache2 USE-flag will be used in
225## DEPEND/RDEPEND to determine which version to use.
226##
227## Currently supported versions: 1.3 2.0 2.2 2.x
37depend_apache() { 228need_apache() {
38 detect_apache_installed 229 debug-print-function $FUNCNAME $*
39 detect_apache_useflags
40 230
41 # deal with the multiple cases first - much easier 231 local supports13 supports20 supports22 supports2x
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 232
43 echo 233 if [[ $# -eq 0 ]] ; then
44 eerror "You have both the apache and apache2 USE flags set" 234 supports13="yes"
45 eerror 235 supports2x="yes"
46 eerror "Please set only ONE of these USE flags, and try again" 236 else
47 echo 237 while [[ $# -gt 0 ]] ; do
48 die "Multiple Apache USE flags set - you can only have one set at a time" 238 case "$1" in
239 1.3) supports13="yes"; shift;;
240 2.0) supports20="yes"; shift;;
241 2.2) supports22="yes"; shift;;
242 2.x) supports2x="yes"; shift;;
243 *) die "Unknown version specifier: $1";;
244 esac
245 done
49 fi 246 fi
50 247
51 if [ -n "$USE_APACHE2" ] ; then 248 if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 249 supports2x="yes";
53 echo 250 fi
54 eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed" 251
55 eerror "If you really meant to upgrade to Apache v2, please install Apache v2" 252 debug-print "supports13: ${supports13}"
56 eerror "before installing $CATEGORY/${PN}-${PVR}" 253 debug-print "supports20: ${supports20}"
57 echo 254 debug-print "supports22: ${supports22}"
58 die "Automatic upgrade of Apache would be forced; avoiding" 255 debug-print "supports2x: ${supports2x}"
256
257 if [[ "${supports13}" != "yes" ]] ; then
258 if [[ "${supports2x}" == "yes" ]] ; then
259 need_apache2
260 elif [[ "${supports20}" == "yes" ]] ; then
261 need_apache2_0
262 elif [[ "${supports22}" == "yes" ]] ; then
263 need_apache2_2
264 fi
265 elif [[ "${supports13}" == "yes" ]] ; then
266 if [[ "${supports2x}" == "yes" || "${supports20}" == "yes" || "${supports22}" == "yes" ]] ; then
267 # We support both apache-1.3 and apache-2.*, set up USE-flag based
268 # DEPEND and RDEPEND, determined by which apache-2.x we support
269 IUSE="${IUSE} apache2"
270
271 if [[ "${supports2x}" != "yes" ]] ; then
272 if [[ "${supports20}" == "yes" ]] ; then
273 NEED_APACHE_DEPEND="apache2? ( ${APACHE2_0_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
274 elif [[ "${supports22}" == "yes" ]] ; then
275 NEED_APACHE_DEPEND="apache2? ( ${APACHE2_2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
276 fi
277 fi
278
279 DEPEND="${DEPEND} ${NEED_APACHE_DEPEND}"
280 RDEPEND="${RDEPEND} ${NEED_APACHE_DEPEND}"
281
282 if use apache2 ; then
283 uses_apache2
284 else
285 uses_apache1
286 fi
59 else 287 else
60 einfo "Apache 2 support enabled" 288 need_apache1
61 DETECT_APACHE=2
62 return
63 fi 289 fi
64 fi 290 fi
291}
65 292
66 if [ -n "$USE_APACHE1" ]; then 293want_apache() {
67 if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then 294 debug-print-function $FUNCNAME $*
68 echo 295
69 eerror "You have the 'apache' USE flag set, but only have a later version of" 296 IUSE="${IUSE} apache2"
70 eerror "Apache installed on your computer. Please use the 'apache2' USE flag" 297 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
71 eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}" 298 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
72 echo 299 if use apache2 ; then
73 die "Avoiding installing older version of Apache" 300 uses_apache2
74 else 301 else
75 einfo "Apache 1 support enabled" 302 doesnt_use_apache
76 DETECT_APACHE=1
77 return
78 fi
79 fi 303 fi
80} 304}
81

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.30

  ViewVC Help
Powered by ViewVC 1.1.20