/[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.33
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.33 2007/07/29 16:36:23 phreak 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="=www-servers/apache-1*"
95APACHE2_DEPEND="=www-servers/apache-2*"
96APACHE2_0_DEPEND="=www-servers/apache-2.0*"
97APACHE2_2_DEPEND="=www-servers/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_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## Currently supported versions: 2.0 2.2 2.x
225####
37depend_apache() { 226need_apache() {
38 detect_apache_installed 227 debug-print-function $FUNCNAME $*
39 detect_apache_useflags
40 228
41 # deal with the multiple cases first - much easier 229 local supports2x supports20 supports22
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then
43 echo
44 eerror "You have both the apache and apache2 USE flags set"
45 eerror
46 eerror "Please set only ONE of these USE flags, and try again"
47 echo
48 die "Multiple Apache USE flags set - you can only have one set at a time"
49 fi
50 230
51 if [ -n "$USE_APACHE2" ] ; then 231 if [[ $# -eq 0 ]] ; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 232 supports2x="yes"
53 echo
54 eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed"
55 eerror "If you really meant to upgrade to Apache v2, please install Apache v2"
56 eerror "before installing $CATEGORY/${PN}-${PVR}"
57 echo
58 die "Automatic upgrade of Apache would be forced; avoiding"
59 else 233 else
60 einfo "Apache 2 support enabled" 234 while [[ $# -gt 0 ]] ; do
61 DETECT_APACHE=2 235 case "$1" in
62 return 236 2.0) supports20="yes"; shift;;
237 2.2) supports22="yes"; shift;;
238 2.x) supports2x="yes"; shift;;
239 *) die "Unknown version specifier: $1";;
240 esac
241 done
63 fi 242 fi
64 fi
65 243
66 if [ -n "$USE_APACHE1" ]; then 244 if [[ "${supports20}" == "yes" ]] && [[ "${supports22}" == "yes" ]] ; then
67 if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then 245 supports2x="yes"
68 echo 246 fi
69 eerror "You have the 'apache' USE flag set, but only have a later version of" 247
70 eerror "Apache installed on your computer. Please use the 'apache2' USE flag" 248 debug-print "supports20: ${supports20}"
71 eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}" 249 debug-print "supports22: ${supports22}"
72 echo 250 debug-print "supports2x: ${supports2x}"
73 die "Avoiding installing older version of Apache" 251
252 if [[ "${supports2x}" == "yes" ]] ; then
253 need_apache2
254 elif [[ "${supports20}" == "yes" ]] ; then
255 need_apache2_0
256 elif [[ "${supports22}" == "yes" ]] ; then
257 need_apache2_2
258 fi
259
260 uses_apache2
261}
262
263want_apache() {
264 debug-print-function $FUNCNAME $*
265
266 IUSE="${IUSE} apache2"
267 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
268 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
269 if use apache2 ; then
270 uses_apache2
74 else 271 else
75 einfo "Apache 1 support enabled" 272 doesnt_use_apache
76 DETECT_APACHE=1
77 return
78 fi 273 fi
79 fi
80} 274}
81

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

  ViewVC Help
Powered by ViewVC 1.1.20