/[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.4 Revision 1.39
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.4 2004/07/24 08:47:01 stuart Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.39 2008/02/03 14:12:44 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# remember to set MY_SLOT if you want to include something like ${PVR} in 18inherit multilib
10# the slot information
11# SLOT="apache? ( 1{$MY_SLOT} ) apache2? ( 2{$MY_SLOT} ) !apache1? ( !apache2? ( 2${MY_SLOT} ) )"
12 19
13DEPEND="$DEPEND apache? ( =net-www/apache-1* ) apache2? ( =net-www/apache-2* ) 20# ==============================================================================
14 !apache? ( !apache2? ( net-www/apache-2* ) )" 21# INTERNAL VARIABLES
22# ==============================================================================
15 23
16# call this function to work out which version of the apache web server 24# @ECLASS-VARIABLE: APACHE_VERSION
17# your ebuild should be installing itself to use 25# @DESCRIPTION:
26# Stores the version of apache we are going to be ebuilding. This variable is
27# set by the need_apache functions.
18 28
19detect_apache_useflags() { 29# @ECLASS-VARIABLE: APXS
20 USE_APACHE1= 30# @DESCRIPTION:
21 USE_APACHE2= 31# Paths to the apxs tool
22 USE_APACHE_MULTIPLE=
23 32
24 useq apache2 && USE_APACHE2=1 33# @ECLASS-VARIABLE: APACHECTL
25 useq apache && USE_APACHE1=1 34# @DESCRIPTION:
35# Path to the apachectl tool
26 36
27 [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1 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# ==============================================================================
73# INTERNAL FUNCTIONS
74# ==============================================================================
75
76_init_apache2() {
77 debug-print-function $FUNCNAME $*
78
79 # WARNING: Do not use these variables with anything that is put
80 # into the dependency cache (DEPEND/RDEPEND/etc)
81 APACHE_VERSION="2"
82 APXS="/usr/sbin/apxs2"
83 APACHE_BIN="/usr/sbin/apache2"
84 APACHE_CTL="/usr/sbin/apache2ctl"
85 # legacy alias
86 APACHECTL="${APACHE_CTL}"
87 APACHE_BASEDIR="/usr/$(get_libdir)/apache2"
88 APACHE_CONFDIR="/etc/apache2"
89 APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"
90 APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"
91 APACHE_MODULESDIR="${APACHE_BASEDIR}/modules"
28} 92}
29 93
30detect_apache_installed() { 94_init_no_apache() {
31 HAS_APACHE1= 95 debug-print-function $FUNCNAME $*
32 HAS_APACHE2= 96 APACHE_VERSION="0"
33 HAS_APACHE_MULTIPLE=
34 HAS_APACHE_ANY=
35
36 has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1
37 has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1
38
39 [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1
40} 97}
41 98
42# call this function from your pkg_setup 99# ==============================================================================
100# PUBLIC FUNCTIONS
101# ==============================================================================
43 102
44depend_apache() { 103# @FUNCTION: want_apache
45 detect_apache_installed 104# @DESCRIPTION:
46 detect_apache_useflags 105# An ebuild calls this to get the dependency information for optional apache-2.x
106# support.
107want_apache2() {
108 debug-print-function $FUNCNAME $*
47 109
48 # deal with the multiple cases first - much easier 110 local myiuse=${1:-apache2}
49 if [ -n "$USE_APACHE_MULTIPLE" ]; then 111 IUSE="${IUSE} ${myiuse}"
50 echo 112 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
51 eerror "You have both the apache and apache2 USE flags set" 113 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
52 eerror 114
53 eerror "Please set only ONE of these USE flags, and try again" 115 if use ${myiuse} ; then
54 echo 116 _init_apache2
55 die "Multiple Apache USE flags set - you can only have one set at a time" 117 else
118 _init_no_apache
56 fi 119 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
89} 120}
90 121
122# @FUNCTION: want_apache
123# @DESCRIPTION:
124# An ebuild calls this to get the dependency information for optional
125# apache-2.2.x support.
126want_apache2_2() {
127 debug-print-function $FUNCNAME $*
128
129 local myiuse=${1:-apache2}
130 IUSE="${IUSE} ${myiuse}"
131 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
132 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"
133
134 if use ${myiuse} ; then
135 _init_apache2
136 else
137 _init_no_apache
138 fi
139}
140
141# @FUNCTION: want_apache
142# @DESCRIPTION:
143# An ebuild calls this to get the dependency information for optional apache
144# support.
145want_apache() {
146 debug-print-function $FUNCNAME $*
147 want_apache2 "$@"
148}
149
150# @FUNCTION: need_apache2
151# @DESCRIPTION:
152# Works like need_apache, but its used by modules that only support
153# apache 2.x and do not work with other versions.
154need_apache2() {
155 debug-print-function $FUNCNAME $*
156
157 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
158 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
159 _init_apache2
160}
161
162# @FUNCTION: need_apache2_2
163# @DESCRIPTION:
164# Works like need_apache, but its used by modules that only support
165# apache 2.2.x and do not work with other versions.
166need_apache2_2() {
167 debug-print-function $FUNCNAME $*
168
169 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
170 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
171 _init_apache2
172}
173
174# @FUNCTION: need_apache
175# @DESCRIPTION:
176# An ebuild calls this to get the dependency information for apache. An
177# ebuild should use this in order for future changes to the build infrastructure
178# to happen seamlessly. All an ebuild needs to do is include the line
179# need_apache somewhere.
180need_apache() {
181 debug-print-function $FUNCNAME $*
182 need_apache2
183}

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.39

  ViewVC Help
Powered by ViewVC 1.1.20