/[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.1.1 Revision 1.5
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2004 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.1.1 2005/11/30 09:59:27 chriswhite Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.5 2004/07/24 08:50:23 robbat2 Exp $
4 4
5inherit multilib 5ECLASS="depend.apache"
6INHERITED="$INHERITED $ECLASS"
7IUSE="apache apache2"
6 8
7###### 9# remember to set MY_SLOT if you want to include something like ${PVR} in
8## Apache Common Variables 10# the slot information
9## 11# SLOT="apache? ( 1{$MY_SLOT} ) apache2? ( 2{$MY_SLOT} ) !apache1? ( !apache2? ( 2${MY_SLOT} ) )"
10## These are internal variables used by this, and other apache-related eclasses,
11## and thus should not need to be used by the ebuilds themselves (the ebuilds
12## should know what version of Apache they are building against).
13######
14 12
15#### 13DEPEND="$DEPEND apache? ( =net-www/apache-1* ) apache2? ( =net-www/apache-2* )
16## APACHE_VERSION 14 !apache? ( !apache2? ( =net-www/apache-2* ) )"
17##
18## Stores the version of apache we are going to be ebuilding. This variable is
19## set by the need_apache{|1|2} functions.
20##
21## This needs to stay as '1' until apache2 is on by default -- although it
22## doesn't matter much as it's set by the need_apache functions.
23####
24APACHE_VERSION='1'
25 15
26#### 16# call this function to work out which version of the apache web server
27## APXS1, APXS2 17# your ebuild should be installing itself to use
28##
29## Paths to the apxs tools
30####
31APXS1="/usr/sbin/apxs"
32APXS2="/usr/sbin/apxs2"
33 18
34#### 19detect_apache_useflags() {
35## APACHECTL1, APACHECTL2 20 USE_APACHE1=
36## 21 USE_APACHE2=
37## Paths to the apachectl tools 22 USE_APACHE_MULTIPLE=
38####
39APACHECTL1="/usr/sbin/apachectl"
40APACHECTL2="/usr/sbin/apache2ctl"
41 23
42#### 24 useq apache2 && USE_APACHE2=1
43## APACHE1_BASEDIR, APACHE2_BASEDIR 25 useq apache && USE_APACHE1=1
44##
45## Paths to the server root directories
46####
47APACHE1_BASEDIR="/usr/$(get_libdir)/apache"
48APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
49 26
50#### 27 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1
51## APACHE1_CONFDIR, APACHE2_CONFDIR
52##
53## Paths to the configuration file directories (usually under
54## $APACHE?_BASEDIR/conf)
55####
56APACHE1_CONFDIR="/etc/apache"
57APACHE2_CONFDIR="/etc/apache2"
58
59####
60## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR
61##
62## Paths where module configuration files are kept
63####
64APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d"
65APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d"
66
67####
68## APACHE1_VHOSTDIR, APACHE2_VHOSTDIR
69##
70## Paths where virtual host configuration files are kept
71####
72APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d"
73APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d"
74
75####
76## APACHE1_MODULESDIR, APACHE2_MODULESDIR
77##
78## Paths where we install modules
79####
80APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules"
81APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules"
82
83####
84## APACHE1_DEPEND, APACHE2_DEPEND
85##
86## Dependencies for apache 1.x and apache 2.x
87## - apache2 must be at least version 2.0.54-r30, this is lowest version
88## containing our new overall changes -- trapni (Jan 21 2005)
89## - apache1 must be at least version 1.3.33-r10, but how to
90## define the DEPEND here? (FIXME) -- trapni (Jan 21 2005)
91## - currently not possible - bug #4315 -- vericgar (Jan 21 2005)
92####
93APACHE1_DEPEND="=net-www/apache-1*"
94APACHE2_DEPEND=">=net-www/apache-2.0.54-r30"
95
96####
97## APACHE_DEPEND
98##
99## Dependency magic based on useflags to use the right DEPEND
100####
101
102NEED_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )"
103WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( apache? ( ${APACHE1_DEPEND} ) )"
104
105####
106# uses_apache1()
107#
108# sets up all of the environment variables required by an apache1 module
109####
110
111uses_apache1() {
112 APACHE_VERSION='1'
113 APXS="$APXS1"
114 USE_APACHE2=
115 APACHECTL="${APACHECTL1}"
116 APACHE_BASEDIR="${APACHE1_BASEDIR}"
117 APACHE_CONFDIR="${APACHE1_CONFDIR}"
118 APACHE_MODULES_CONFDIR="${APACHE1_MODULES_CONFDIR}"
119 APACHE_VHOSTSDIR="${APACHE1_VHOSTSDIR}"
120 APACHE_MODULESDIR="${APACHE1_MODULESDIR}"
121} 28}
122 29
123#### 30detect_apache_installed() {
124# uses_apache2() 31 HAS_APACHE1=
125# 32 HAS_APACHE2=
126# sets up all of the environment variables required by an apache2 module 33 HAS_APACHE_MULTIPLE=
127#### 34 HAS_APACHE_ANY=
128 35
129uses_apache2() { 36 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1
130 APACHE_VERSION='2' 37 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1
131 USE_APACHE2=2 38
132 APXS="$APXS2" 39 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" ] && HAVE_APACHE_MULTIPLE=1
133 APACHECTL="${APACHECTL2}"
134 APACHE_BASEDIR="${APACHE2_BASEDIR}"
135 APACHE_CONFDIR="${APACHE2_CONFDIR}"
136 APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}"
137 APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}"
138 APACHE_MODULESDIR="${APACHE2_MODULESDIR}"
139} 40}
140 41
141doesnt_use_apache() { 42# call this function from your pkg_setup
142 APACHE_VERSION='0' 43
143 USE_APACHE= 44depend_apache() {
45 detect_apache_installed
46 detect_apache_useflags
47
48 # deal with the multiple cases first - much easier
49 if [ -n "$USE_APACHE_MULTIPLE" ]; then
50 echo
51 eerror "You have both the apache and apache2 USE flags set"
52 eerror
53 eerror "Please set only ONE of these USE flags, and try again"
54 echo
55 die "Multiple Apache USE flags set - you can only have one set at a time"
56 fi
57
58 if [ -n "$USE_APACHE2" ] ; then
59 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then
60 echo
61 eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed"
62 eerror "If you really meant to upgrade to Apache v2, please install Apache v2"
63 eerror "before installing $CATEGORY/${PN}-${PVR}"
64 echo
65 die "Automatic upgrade of Apache would be forced; avoiding"
66 else
67 einfo "Apache 2 support enabled"
68 DETECT_APACHE=2
69 return
70 fi
71 fi
72
73 if [ -n "$USE_APACHE1" ]; then
74 if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then
75 echo
76 eerror "You have the 'apache' USE flag set, but only have a later version of"
77 eerror "Apache installed on your computer. Please use the 'apache2' USE flag"
78 eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}"
79 echo
80 die "Avoiding installing older version of Apache"
81 else
82 einfo "Apache 1 support enabled"
83 DETECT_APACHE=1
84 return
85 fi
86 fi
87
88 [ -z "$DETECT_APACHE" ] && DETECT_APACHE=2
144} 89}
145 90
146####
147## need_apache1
148##
149## An ebuild calls this to get the dependency information
150## for apache-1.x. An ebuild should use this in order for
151## future changes to the build infrastructure to happen
152## seamlessly. All an ebuild needs to do is include the
153## line need_apache1 somewhere.
154####
155need_apache1() {
156 debug-print-function need_apache1
157
158 DEPEND="${DEPEND} ${APACHE1_DEPEND}"
159 RDEPEND="${RDEPEND} ${APACHE1_DEPEND}"
160 APACHE_VERSION='1'
161}
162
163####
164## need_apache2
165##
166## An ebuild calls this to get the dependency information
167## for apache-2.x. An ebuild should use this in order for
168## future changes to the build infrastructure to happen
169## seamlessly. All an ebuild needs to do is include the
170## line need_apache1 somewhere.
171####
172need_apache2() {
173 debug-print-function need_apache2
174
175 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
176 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
177 APACHE_VERSION='2'
178}
179
180####
181## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT
182## WILL HAVE ON THE CACHE! There MUST be a apache2? () block in DEPEND for
183## things to work correct in the dependency calculation stage.
184####
185need_apache() {
186 debug-print-function need_apache
187
188 IUSE="${IUSE} apache2"
189 DEPEND="${DEPEND} ${NEED_APACHE_DEPEND}"
190 RDEPEND="${RDEPEND} ${NEED_APACHE_DEPEND}"
191 if useq apache2; then
192 uses_apache2
193 else
194 uses_apache1
195 fi
196}
197
198want_apache() {
199 debug-print-function want_apache
200
201 IUSE="${IUSE} apache apache2"
202 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
203 RDEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
204 if useq apache2 ; then
205 uses_apache2
206 elif useq apache ; then
207 uses_apache1
208 else
209 doesnt_use_apache
210 fi
211}

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.20