/[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.11 Revision 1.39
1# Copyright 2004-2005 Gentoo Foundation 1# Copyright 1999-2007 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License, v2 or later 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.11 2005/03/04 12:37:55 eradicator Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.39 2008/02/03 14:12:44 hollow Exp $
4
5# @ECLASS: depend.apache.eclass
6# @MAINTAINER: apache-devs@gentoo.org
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.
4 17
5inherit multilib 18inherit multilib
6 19
7ECLASS=depend.apache 20# ==============================================================================
8INHERITED="$INHERITED $ECLASS" 21# INTERNAL VARIABLES
22# ==============================================================================
9 23
10###### 24# @ECLASS-VARIABLE: APACHE_VERSION
11## Apache Common Variables 25# @DESCRIPTION:
12## 26# Stores the version of apache we are going to be ebuilding. This variable is
13## These are internal variables used by this, and other apache-related eclasses, 27# set by the need_apache functions.
14## and thus should not need to be used by the ebuilds themselves (the ebuilds
15## should know what version of Apache they are building against).
16######
17 28
18#### 29# @ECLASS-VARIABLE: APXS
19## APACHE_VERSION 30# @DESCRIPTION:
20## 31# Paths to the apxs tool
21## Stores the version of apache we are going to be ebuilding. This variable is
22## set by the need_apache{|1|2} functions.
23##
24## This needs to stay as '1' until apache2 is on by default -- although it
25## doesn't matter much as it's set by the need_apache functions.
26####
27APACHE_VERSION='1'
28 32
29#### 33# @ECLASS-VARIABLE: APACHECTL
30## APXS1, APXS2 34# @DESCRIPTION:
31##
32## Paths to the apxs tools 35# Path to the apachectl tool
33####
34APXS1="/usr/sbin/apxs"
35APXS2="/usr/sbin/apxs2"
36 36
37#### 37# @ECLASS-VARIABLE: APACHE_BASEDIR
38## APACHECTL1, APACHECTL2 38# @DESCRIPTION:
39## 39# Path to the server root directory
40## Paths to the apachectl tools
41####
42APACHECTL1="/usr/sbin/apachectl"
43APACHECTL2="/usr/sbin/apache2ctl"
44 40
45#### 41# @ECLASS-VARIABLE: APACHE_CONFDIR
46## APACHE1_BASEDIR, APACHE2_BASEDIR 42# @DESCRIPTION:
47## 43# Path to the configuration file directory
48## Paths to the server root directories
49####
50APACHE1_BASEDIR="/usr/$(get_libdir)/apache"
51APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
52 44
53#### 45# @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR
54## APACHE1_CONFDIR, APACHE2_CONFDIR 46# @DESCRIPTION:
55## 47# Path where module configuration files are kept
56## Paths to the configuration file directories (usually under
57## $APACHE?_BASEDIR/conf)
58####
59APACHE1_CONFDIR="/etc/apache"
60APACHE2_CONFDIR="/etc/apache2"
61 48
62#### 49# @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR
63## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR 50# @DESCRIPTION:
64##
65## Paths where module configuration files are kept 51# Path where virtual host configuration files are kept
66####
67APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d"
68APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d"
69 52
70#### 53# @ECLASS-VARIABLE: APACHE_MODULESDIR
71## APACHE1_MODULES_VHOSTDIR, APACHE2_MODULES_VHOSTDIR 54# @DESCRIPTION:
72## 55# Path where we install modules
73## Paths where virtual host configuration files are kept
74####
75APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d"
76APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d"
77 56
78#### 57# @ECLASS-VARIABLE: APACHE_DEPEND
79## APACHE1_MODULESDIR, APACHE2_MODULESDIR 58# @DESCRIPTION:
80## 59# Dependencies for Apache
81## Paths where we install modules 60APACHE_DEPEND="www-servers/apache"
82####
83APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules"
84APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules"
85 61
86#### 62# @ECLASS-VARIABLE: APACHE2_DEPEND
87## APACHE1_DEPEND, APACHE2_DEPEND 63# @DESCRIPTION:
88##
89## Dependencies for apache 1.x and apache 2.x 64# Dependencies for Apache 2.x
90## - apache2 must be at least version 2.0.52-r3, this is lowest version
91## containing our new overall changes -- trapni (Jan 21 2005)
92## - apache1 must be at least version 1.3.33-r1, but how to
93## define the DEPEND here? (FIXME) -- trapni (Jan 21 2005)
94## - currently not possible - bug #4315 -- vericgar (Jan 21 2005)
95####
96APACHE1_DEPEND="=net-www/apache-1*" 65APACHE2_DEPEND="=www-servers/apache-2*"
97APACHE2_DEPEND=">=net-www/apache-2.0.52-r3"
98 66
67# @ECLASS-VARIABLE: APACHE2_2_DEPEND
68# @DESCRIPTION:
69# Dependencies for Apache 2.2.x
70APACHE2_2_DEPEND="=www-servers/apache-2.2*"
99 71
100#### 72# ==============================================================================
101## APACHE_DEPEND 73# INTERNAL FUNCTIONS
102## 74# ==============================================================================
103## Dependency magic based on useflags to use the right DEPEND
104####
105 75
106APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} ) !apache2? ( ${APACHE1_DEPEND} )" 76_init_apache2() {
77 debug-print-function $FUNCNAME $*
107 78
108#### 79 # WARNING: Do not use these variables with anything that is put
109## need_apache1 80 # into the dependency cache (DEPEND/RDEPEND/etc)
110##
111## An ebuild calls this to get the dependency information
112## for apache-1.x. An ebuild should use this in order for
113## future changes to the build infrastructure to happen
114## seamlessly. All an ebuild needs to do is include the
115## line need_apache1 somewhere.
116####
117need_apache1() {
118 debug-print-function need_apache1
119
120 DEPEND="${DEPEND} ${APACHE1_DEPEND}"
121 RDEPEND="${RDEPEND} ${APACHE1_DEPEND}"
122 APACHE_VERSION='1' 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"
123} 92}
124 93
125#### 94_init_no_apache() {
126## need_apache2 95 debug-print-function $FUNCNAME $*
127## 96 APACHE_VERSION="0"
97}
98
99# ==============================================================================
100# PUBLIC FUNCTIONS
101# ==============================================================================
102
103# @FUNCTION: want_apache
104# @DESCRIPTION:
105# An ebuild calls this to get the dependency information for optional apache-2.x
106# support.
107want_apache2() {
108 debug-print-function $FUNCNAME $*
109
110 local myiuse=${1:-apache2}
111 IUSE="${IUSE} ${myiuse}"
112 DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
113 RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"
114
115 if use ${myiuse} ; then
116 _init_apache2
117 else
118 _init_no_apache
119 fi
120}
121
122# @FUNCTION: want_apache
123# @DESCRIPTION:
128## An ebuild calls this to get the dependency information 124# An ebuild calls this to get the dependency information for optional
129## for apache-2.x. An ebuild should use this in order for 125# apache-2.2.x support.
130## future changes to the build infrastructure to happen 126want_apache2_2() {
131## seamlessly. All an ebuild needs to do is include the 127 debug-print-function $FUNCNAME $*
132## line need_apache1 somewhere. 128
133#### 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.
134need_apache2() { 154need_apache2() {
135 debug-print-function need_apache2 155 debug-print-function $FUNCNAME $*
136 156
137 DEPEND="${DEPEND} ${APACHE2_DEPEND}" 157 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
138 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" 158 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
139 APACHE_VERSION='2' 159 _init_apache2
140} 160}
141 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 $*
142 168
143#### 169 DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
144## DO NOT CHANGE THIS FUNCTION UNLESS YOU UNDERSTAND THE CONSEQUENCES IT 170 RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
145## WILL HAVE ON THE CACHE! There MUST be a apache2? () block in DEPEND for 171 _init_apache2
146## things to work correct in the dependency calculation stage. 172}
147#### 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.
148need_apache() { 180need_apache() {
149 debug-print-function need_apache 181 debug-print-function $FUNCNAME $*
150 182 need_apache2
151 IUSE="${IUSE} apache2"
152 DEPEND="${DEPEND} ${APACHE_DEPEND}"
153 RDEPEND="${RDEPEND} ${APACHE_DEPEND}"
154 if useq apache2; then
155 APACHE_VERSION='2'
156 else
157 APACHE_VERSION='1'
158 fi
159} 183}

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

  ViewVC Help
Powered by ViewVC 1.1.20