/[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.36
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.36 2008/02/02 12:53:52 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 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.
8 17
9# call this function to work out which version of the apache web server 18inherit multilib
10# your ebuild should be installing itself to use
11 19
12detect_apache_useflags() { 20# ==============================================================================
13 USE_APACHE1= 21# INTERNAL VARIABLES
14 USE_APACHE2= 22# ==============================================================================
15 USE_APACHE_MULTIPLE=
16 23
17 useq apache2 && USE_APACHE2=1 24# @ECLASS-VARIABLE: APACHE_VERSION
18 useq apache && USE_APACHE1=1 25# @DESCRIPTION:
26# Stores the version of apache we are going to be ebuilding. This variable is
27# set by the need_apache functions.
19 28
20 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1 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: APACHE2_DEPEND
58# @DESCRIPTION:
59# Dependencies for Apache 2.x
60APACHE2_DEPEND="=www-servers/apache-2*"
61
62# @ECLASS-VARIABLE: APACHE2_0_DEPEND
63# @DESCRIPTION:
64# Dependencies for Apache 2.0.x
65APACHE2_0_DEPEND="=www-servers/apache-2.0*"
66
67# @ECLASS-VARIABLE: APACHE2_2_DEPEND
68# @DESCRIPTION:
69# Dependencies for Apache 2.2.x
70APACHE2_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
75WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
76
77# ==============================================================================
78# INTERNAL FUNCTIONS
79# ==============================================================================
80
81# @FUNCTION: uses_apache2
82# @DESCRIPTION:
83# sets up all of the environment variables required for an apache2 module
84uses_apache2() {
85 debug-print-function $FUNCNAME $*
86
87 # WARNING: Do not use these variables with anything that is put
88 # into the dependency cache (DEPEND/RDEPEND/etc)
89 APACHE_VERSION="2"
90 APXS="/usr/sbin/apxs2"
91 APACHECTL="/usr/sbin/apache2ctl"
92 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
93 APACHE_CONFDIR="/etc/apache2"
94 APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
95 APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
96 APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
21} 97}
22 98
23detect_apache_installed() { 99# @FUNCTION: doesnt_use_apache
24 HAS_APACHE1= 100# @DESCRIPTION:
25 HAS_APACHE2= 101# sets up all of the environment variables required for optional apache usage
26 HAS_APACHE_MULTIPLE= 102doesnt_use_apache() {
27 HAS_APACHE_ANY= 103 debug-print-function $FUNCNAME $*
28 104
29 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1 105 APACHE_VERSION="0"
30 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1 106 USE_APACHE="0"
31
32 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1
33} 107}
34 108
35# call this function from your pkg_setup 109# ==============================================================================
110# PUBLIC FUNCTIONS
111# ==============================================================================
36 112
113# @FUNCTION: want_apache
114# @DESCRIPTION:
115# An ebuild calls this to get the dependency information for optional apache-2.x
116# support.
37depend_apache() { 117want_apache() {
38 detect_apache_installed 118 debug-print-function $FUNCNAME $*
39 detect_apache_useflags
40 119
41 # deal with the multiple cases first - much easier 120 IUSE="${IUSE} apache2"
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 121 DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
43 echo 122 RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
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 123
51 if [ -n "$USE_APACHE2" ] ; then 124 if use apache2 ; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 125 uses_apache2
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 126 else
60 einfo "Apache 2 support enabled" 127 doesnt_use_apache
61 DETECT_APACHE=2
62 return
63 fi
64 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 128 fi
80} 129}
81 130
131# @FUNCTION: need_apache2
132# @DESCRIPTION:
133# An ebuild calls this to get the dependency information for apache-2.x. An
134# ebuild should use this in order for future changes to the build infrastructure
135# to happen seamlessly. All an ebuild needs to do is include the line
136# need_apache2 somewhere.
137need_apache2() {
138 debug-print-function $FUNCNAME $*
139
140 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
141 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
142 uses_apache2
143}
144
145# @FUNCTION: need_apache2_0
146# @DESCRIPTION:
147# Works like need_apache2 above, but its used by modules that only support
148# apache 2.0 and do not work with higher versions.
149need_apache2_0() {
150 debug-print-function $FUNCNAME $*
151
152 DEPEND="${DEPEND} ${APACHE2_0_DEPEND}"
153 RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}"
154 uses_apache2
155}
156
157# @FUNCTION: need_apache2_2
158# @DESCRIPTION:
159# Works like need_apache2 above, but its used by modules that only support
160# apache 2.2 and do not work with lower versions.
161need_apache2_2() {
162 debug-print-function $FUNCNAME $*
163
164 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
165 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
166 uses_apache2
167}
168
169# @FUNCTION: need_apache
170# @DESCRIPTION:
171# Legacy alias for need_apache2
172need_apache() {
173 need_apache2
174}

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

  ViewVC Help
Powered by ViewVC 1.1.20