/[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.40
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.40 2008/02/06 08:33:47 hollow Exp $
4 4
5ECLASS="depend.apache" 5# @ECLASS: depend.apache.eclass
6INHERITED="$INHERITED $ECLASS" 6# @MAINTAINER: apache-devs@gentoo.org
7IUSE="apache apache2" 7# @BLURB: Functions to allow ebuilds to depend on apache
8# @DESCRIPTION:
9# This eclass handles depending on apache in a sane way and provides information
10# about where certain binaries and configuration files are located.
11#
12# To make use of this eclass simply call one of the need/want_apache functions
13# described below. Make sure you use the need/want_apache call after you have
14# defined DEPEND and RDEPEND. Also note that you can not rely on the automatic
15# RDEPEND=DEPEND that portage does if you use this eclass.
16#
17# See Bug 107127 for more information.
18#
19# @EXAMPLE:
20#
21# Here is an example of an ebuild depending on apache:
22#
23# @CODE
24# DEPEND="virtual/Perl-CGI"
25# RDEPEND="${DEPEND}"
26# need_apache2
27# @CODE
28#
29# Another example which demonstrates non-standard IUSE options for optional
30# apache support:
31#
32# @CODE
33# DEPEND="server? ( virtual/Perl-CGI )"
34# RDEPEND="${DEPEND}"
35# want_apache2 server
36# @CODE
8 37
9# call this function to work out which version of the apache web server 38inherit multilib
10# your ebuild should be installing itself to use
11 39
12detect_apache_useflags() { 40# ==============================================================================
13 USE_APACHE1= 41# INTERNAL VARIABLES
14 USE_APACHE2= 42# ==============================================================================
15 USE_APACHE_MULTIPLE=
16 43
17 useq apache2 && USE_APACHE2=1 44# @ECLASS-VARIABLE: APACHE_VERSION
18 useq apache && USE_APACHE1=1 45# @DESCRIPTION:
46# Stores the version of apache we are going to be ebuilding.
47# This variable is set by the want/need_apache functions.
19 48
20 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1 49# @ECLASS-VARIABLE: APXS
21} 50# @DESCRIPTION:
51# Paths to the apxs tool.
52# This variable is set by the want/need_apache functions.
22 53
23detect_apache_installed() { 54# @ECLASS-VARIABLE: APACHE_BIN
24 HAS_APACHE1= 55# @DESCRIPTION:
25 HAS_APACHE2= 56# Path to the apache binary.
26 HAS_APACHE_MULTIPLE= 57# This variable is set by the want/need_apache functions.
27 HAS_APACHE_ANY=
28 58
29 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1 59# @ECLASS-VARIABLE: APACHE_CTL
30 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1 60# @DESCRIPTION:
61# Path to the apachectl tool.
62# This variable is set by the want/need_apache functions.
31 63
32 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1 64# @ECLASS-VARIABLE: APACHE_BASEDIR
33} 65# @DESCRIPTION:
66# Path to the server root directory.
67# This variable is set by the want/need_apache functions.
34 68
35# call this function from your pkg_setup 69# @ECLASS-VARIABLE: APACHE_CONFDIR
70# @DESCRIPTION:
71# Path to the configuration file directory.
72# This variable is set by the want/need_apache functions.
36 73
74# @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR
75# @DESCRIPTION:
76# Path where module configuration files are kept.
77# This variable is set by the want/need_apache functions.
78
79# @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR
80# @DESCRIPTION:
81# Path where virtual host configuration files are kept.
82# This variable is set by the want/need_apache functions.
83
84# @ECLASS-VARIABLE: APACHE_MODULESDIR
85# @DESCRIPTION:
86# Path where we install modules.
87# This variable is set by the want/need_apache functions.
88
89# @ECLASS-VARIABLE: APACHE_DEPEND
90# @DESCRIPTION:
91# Dependencies for Apache
92APACHE_DEPEND="www-servers/apache"
93
94# @ECLASS-VARIABLE: APACHE2_DEPEND
95# @DESCRIPTION:
96# Dependencies for Apache 2.x
97APACHE2_DEPEND="=www-servers/apache-2*"
98
99# @ECLASS-VARIABLE: APACHE2_2_DEPEND
100# @DESCRIPTION:
101# Dependencies for Apache 2.2.x
102APACHE2_2_DEPEND="=www-servers/apache-2.2*"
103
104# ==============================================================================
105# INTERNAL FUNCTIONS
106# ==============================================================================
107
108_init_apache2() {
109 debug-print-function $FUNCNAME $*
110
111 # WARNING: Do not use these variables with anything that is put
112 # into the dependency cache (DEPEND/RDEPEND/etc)
113 APACHE_VERSION="2"
114 APXS="/usr/sbin/apxs2"
115 APACHE_BIN="/usr/sbin/apache2"
116 APACHE_CTL="/usr/sbin/apache2ctl"
117 # legacy alias
118 APACHECTL="${APACHE_CTL}"
119 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
120 APACHE_CONFDIR="/etc/apache2"
121 APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
122 APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
123 APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
124}
125
126_init_no_apache() {
127 debug-print-function $FUNCNAME $*
128 APACHE_VERSION="0"
129}
130
131# ==============================================================================
132# PUBLIC FUNCTIONS
133# ==============================================================================
134
135# @FUNCTION: want_apache
136# @USAGE: [myiuse]
137# @DESCRIPTION:
138# An ebuild calls this to get the dependency information for optional apache
139# support. If the myiuse parameter is not given it defaults to apache2.
37depend_apache() { 140want_apache() {
38 detect_apache_installed 141 debug-print-function $FUNCNAME $*
39 detect_apache_useflags 142 want_apache2 "$@"
143}
40 144
41 # deal with the multiple cases first - much easier 145# @FUNCTION: want_apache2
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 146# @USAGE: [myiuse]
43 echo 147# @DESCRIPTION:
44 eerror "You have both the apache and apache2 USE flags set" 148# An ebuild calls this to get the dependency information for optional apache-2.x
45 eerror 149# support. If the myiuse parameter is not given it defaults to apache2.
46 eerror "Please set only ONE of these USE flags, and try again" 150want_apache2() {
47 echo 151 debug-print-function $FUNCNAME $*
48 die "Multiple Apache USE flags set - you can only have one set at a time" 152
153 local myiuse=${1:-apache2}
154 IUSE="${IUSE} ${myiuse}"
155 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
156 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
157
158 if use ${myiuse} ; then
159 _init_apache2
160 else
161 _init_no_apache
49 fi 162 fi
163}
50 164
51 if [ -n "$USE_APACHE2" ] ; then 165# @FUNCTION: want_apache2_2
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 166# @USAGE: [myiuse]
53 echo 167# @DESCRIPTION:
54 eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed" 168# An ebuild calls this to get the dependency information for optional
55 eerror "If you really meant to upgrade to Apache v2, please install Apache v2" 169# apache-2.2.x support. If the myiuse parameter is not given it defaults to
56 eerror "before installing $CATEGORY/${PN}-${PVR}" 170# apache2.
57 echo 171want_apache2_2() {
58 die "Automatic upgrade of Apache would be forced; avoiding" 172 debug-print-function $FUNCNAME $*
173
174 local myiuse=${1:-apache2}
175 IUSE="${IUSE} ${myiuse}"
176 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
177 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
178
179 if use ${myiuse} ; then
180 _init_apache2
59 else 181 else
60 einfo "Apache 2 support enabled" 182 _init_no_apache
61 DETECT_APACHE=2
62 return
63 fi
64 fi 183 fi
65
66 if [ -n "$USE_APACHE1" ]; then
67 if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then
68 echo
69 eerror "You have the 'apache' USE flag set, but only have a later version of"
70 eerror "Apache installed on your computer. Please use the 'apache2' USE flag"
71 eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}"
72 echo
73 die "Avoiding installing older version of Apache"
74 else
75 einfo "Apache 1 support enabled"
76 DETECT_APACHE=1
77 return
78 fi
79 fi
80} 184}
81 185
186# @FUNCTION: need_apache
187# @DESCRIPTION:
188# An ebuild calls this to get the dependency information for apache.
189need_apache() {
190 debug-print-function $FUNCNAME $*
191 need_apache2
192}
193
194# @FUNCTION: need_apache2
195# @DESCRIPTION:
196# An ebuild calls this to get the dependency information for apache-2.x.
197need_apache2() {
198 debug-print-function $FUNCNAME $*
199
200 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
201 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
202 _init_apache2
203}
204
205# @FUNCTION: need_apache2_2
206# @DESCRIPTION:
207# An ebuild calls this to get the dependency information for apache-2.2.x.
208need_apache2_2() {
209 debug-print-function $FUNCNAME $*
210
211 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
212 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
213 _init_apache2
214}

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

  ViewVC Help
Powered by ViewVC 1.1.20