/[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.38
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.38 2008/02/03 11:51:36 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: APACHE_DEPEND
58# @DESCRIPTION:
59# Dependencies for Apache
60APACHE_DEPEND="www-servers/apache"
61
62# @ECLASS-VARIABLE: APACHE2_DEPEND
63# @DESCRIPTION:
64# Dependencies for Apache 2.x
65APACHE2_DEPEND="=www-servers/apache-2*"
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? ( ${APACHE_DEPEND} )"
76
77# @ECLASS-VARIABLE: WANT_APACHE2_DEPEND
78# @DESCRIPTION:
79# Dependency magic based on useflag to use the right DEPEND
80WANT_APACHE2_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
81
82# @ECLASS-VARIABLE: WANT_APACHE2_2_DEPEND
83# @DESCRIPTION:
84# Dependency magic based on useflag to use the right DEPEND
85WANT_APACHE2_2_DEPEND="apache2? ( ${APACHE2_2_DEPEND} )"
86
87# ==============================================================================
88# INTERNAL FUNCTIONS
89# ==============================================================================
90
91_init_apache2() {
92 debug-print-function $FUNCNAME $*
93
94 # WARNING: Do not use these variables with anything that is put
95 # into the dependency cache (DEPEND/RDEPEND/etc)
96 APACHE_VERSION="2"
97 APXS="/usr/sbin/apxs2"
98 APACHE_BIN="/usr/sbin/apache2"
99 APACHE_CTL="/usr/sbin/apache2ctl"
100 # legacy alias
101 APACHECTL="${APACHE_CTL}"
102 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
103 APACHE_CONFDIR="/etc/apache2"
104 APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
105 APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
106 APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
21} 107}
22 108
23detect_apache_installed() { 109_init_no_apache() {
24 HAS_APACHE1= 110 debug-print-function $FUNCNAME $*
25 HAS_APACHE2= 111 APACHE_VERSION="0"
26 HAS_APACHE_MULTIPLE=
27 HAS_APACHE_ANY=
28
29 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1
30 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1
31
32 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1
33} 112}
34 113
35# call this function from your pkg_setup 114# ==============================================================================
115# PUBLIC FUNCTIONS
116# ==============================================================================
36 117
37depend_apache() { 118# @FUNCTION: want_apache
38 detect_apache_installed 119# @DESCRIPTION:
39 detect_apache_useflags 120# An ebuild calls this to get the dependency information for optional apache-2.x
121# support.
122want_apache2() {
123 debug-print-function $FUNCNAME $*
40 124
41 # deal with the multiple cases first - much easier 125 IUSE="${IUSE} apache2"
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 126 DEPEND="${DEPEND} ${WANT_APACHE2_DEPEND}"
43 echo 127 RDEPEND="${RDEPEND} ${WANT_APACHE2_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 128
51 if [ -n "$USE_APACHE2" ] ; then 129 if use apache2 ; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 130 _init_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 131 else
60 einfo "Apache 2 support enabled" 132 _init_no_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 133 fi
80} 134}
81 135
136# @FUNCTION: want_apache
137# @DESCRIPTION:
138# An ebuild calls this to get the dependency information for optional
139# apache-2.2.x support.
140want_apache2_2() {
141 debug-print-function $FUNCNAME $*
142
143 IUSE="${IUSE} apache2"
144 DEPEND="${DEPEND} ${WANT_APACHE2_2_DEPEND}"
145 RDEPEND="${RDEPEND} ${WANT_APACHE2_2_DEPEND}"
146
147 if use apache2 ; then
148 _init_apache2
149 else
150 _init_no_apache
151 fi
152}
153
154# @FUNCTION: want_apache
155# @DESCRIPTION:
156# An ebuild calls this to get the dependency information for optional apache
157# support.
158want_apache() {
159 want_apache2
160}
161
162# @FUNCTION: need_apache2
163# @DESCRIPTION:
164# Works like need_apache, but its used by modules that only support
165# apache 2.x and do not work with other versions.
166need_apache2() {
167 debug-print-function $FUNCNAME $*
168
169 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
170 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
171 _init_apache2
172}
173
174# @FUNCTION: need_apache2_2
175# @DESCRIPTION:
176# Works like need_apache, but its used by modules that only support
177# apache 2.2.x and do not work with other versions.
178need_apache2_2() {
179 debug-print-function $FUNCNAME $*
180
181 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
182 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
183 _init_apache2
184}
185
186# @FUNCTION: need_apache
187# @DESCRIPTION:
188# An ebuild calls this to get the dependency information for apache. An
189# ebuild should use this in order for future changes to the build infrastructure
190# to happen seamlessly. All an ebuild needs to do is include the line
191# need_apache somewhere.
192need_apache() {
193 need_apache2
194}

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

  ViewVC Help
Powered by ViewVC 1.1.20