/[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.37
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.37 2008/02/02 14:31:42 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 APACHECTL="/usr/sbin/apache2ctl"
99 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
100 APACHE_CONFDIR="/etc/apache2"
101 APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
102 APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
103 APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
21} 104}
22 105
23detect_apache_installed() { 106_init_no_apache() {
24 HAS_APACHE1= 107 debug-print-function $FUNCNAME $*
25 HAS_APACHE2= 108 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} 109}
34 110
35# call this function from your pkg_setup 111# ==============================================================================
112# PUBLIC FUNCTIONS
113# ==============================================================================
36 114
37depend_apache() { 115# @FUNCTION: want_apache
38 detect_apache_installed 116# @DESCRIPTION:
39 detect_apache_useflags 117# An ebuild calls this to get the dependency information for optional apache-2.x
118# support.
119want_apache2() {
120 debug-print-function $FUNCNAME $*
40 121
41 # deal with the multiple cases first - much easier 122 IUSE="${IUSE} apache2"
42 if [ -n "$USE_APACHE_MULTIPLE" ]; then 123 DEPEND="${DEPEND} ${WANT_APACHE2_DEPEND}"
43 echo 124 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 125
51 if [ -n "$USE_APACHE2" ] ; then 126 if use apache2 ; then
52 if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then 127 _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 128 else
60 einfo "Apache 2 support enabled" 129 _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 130 fi
80} 131}
81 132
133# @FUNCTION: want_apache
134# @DESCRIPTION:
135# An ebuild calls this to get the dependency information for optional
136# apache-2.2.x support.
137want_apache2_2() {
138 debug-print-function $FUNCNAME $*
139
140 IUSE="${IUSE} apache2"
141 DEPEND="${DEPEND} ${WANT_APACHE2_2_DEPEND}"
142 RDEPEND="${RDEPEND} ${WANT_APACHE2_2_DEPEND}"
143
144 if use apache2 ; then
145 _init_apache2
146 else
147 _init_no_apache
148 fi
149}
150
151# @FUNCTION: want_apache
152# @DESCRIPTION:
153# An ebuild calls this to get the dependency information for optional apache
154# support.
155want_apache() {
156 want_apache2
157}
158
159# @FUNCTION: need_apache2
160# @DESCRIPTION:
161# Works like need_apache, but its used by modules that only support
162# apache 2.x and do not work with other versions.
163need_apache2() {
164 debug-print-function $FUNCNAME $*
165
166 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
167 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
168 _init_apache2
169}
170
171# @FUNCTION: need_apache2_2
172# @DESCRIPTION:
173# Works like need_apache, but its used by modules that only support
174# apache 2.2.x and do not work with other versions.
175need_apache2_2() {
176 debug-print-function $FUNCNAME $*
177
178 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
179 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
180 _init_apache2
181}
182
183# @FUNCTION: need_apache
184# @DESCRIPTION:
185# An ebuild calls this to get the dependency information for apache. An
186# ebuild should use this in order for future changes to the build infrastructure
187# to happen seamlessly. All an ebuild needs to do is include the line
188# need_apache somewhere.
189need_apache() {
190 need_apache2
191}

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

  ViewVC Help
Powered by ViewVC 1.1.20