/[gentoo-x86]/eclass/depend.apache.eclass
Gentoo

Contents of /eclass/depend.apache.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.35 - (hide annotations) (download)
Sun Nov 25 14:27:52 2007 UTC (6 years, 7 months ago) by hollow
Branch: MAIN
Changes since 1.34: +148 -233 lines
remove deprecated apache1 functions; remove bogus need_apache logic; convert to standardized documentation comments

1 chtekk 1.30 # Copyright 1999-2007 Gentoo Foundation
2 stuart 1.20 # Distributed under the terms of the GNU General Public License v2
3 hollow 1.35 # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.34 2007/09/08 14:06:12 hollow Exp $
4 stuart 1.2
5 hollow 1.35 # @ECLASS: depend.apache.eclass
6     # @MAINTAINER: apache-devs@gentoo.org
7     # @BLURB: Functions to allow ebuilds to depend on apache
8     # @DESCRIPTION:
9 vericgar 1.25 # This eclass handles depending on apache in a sane way and providing
10     # information about where certain interfaces are located.
11 hollow 1.35 #
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.
17 vericgar 1.25
18 hollow 1.35 inherit multilib
19 vericgar 1.25
20 hollow 1.35 # ==============================================================================
21     # INTERNAL VARIABLES
22     # ==============================================================================
23    
24     # @ECLASS-VARIABLE: APACHE_VERSION
25     # @DESCRIPTION:
26     # Stores the version of apache we are going to be ebuilding. This variable is
27     # set by the need_apache functions.
28 chtekk 1.30 #APACHE_VERSION="2"
29 urilith 1.6
30 hollow 1.35 # @ECLASS-VARIABLE: APXS2
31     # @DESCRIPTION:
32     # Paths to the apxs tool
33 urilith 1.6 APXS2="/usr/sbin/apxs2"
34    
35 hollow 1.35 # @ECLASS-VARIABLE: APACHECTL2
36     # @DESCRIPTION:
37     # Path to the apachectl tool
38 urilith 1.6 APACHECTL2="/usr/sbin/apache2ctl"
39    
40 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_BASEDIR
41     # @DESCRIPTION:
42     # Path to the server root directory
43 vericgar 1.24 APACHE2_BASEDIR="/usr/$(get_libdir)/apache2"
44 urilith 1.6
45 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_CONFDIR
46     # @DESCRIPTION:
47     # Path to the configuration file directory
48 urilith 1.6 APACHE2_CONFDIR="/etc/apache2"
49    
50 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_MODULES_CONFDIR
51     # @DESCRIPTION:
52     # Path where module configuration files are kept
53 urilith 1.6 APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d"
54    
55 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_VHOSTDIR
56     # @DESCRIPTION:
57     # Path where virtual host configuration files are kept
58 urilith 1.6 APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d"
59    
60 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_MODULESDIR
61     # @DESCRIPTION:
62     # Path where we install modules
63 urilith 1.6 APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules"
64    
65 hollow 1.35 # @ECLASS-VARIABLE: APACHE2_DEPEND
66     # @DESCRIPTION:
67     # Dependencies for Apache 2.x
68 phreak 1.33 APACHE2_DEPEND="=www-servers/apache-2*"
69 hollow 1.35
70     # @ECLASS-VARIABLE: APACHE2_0_DEPEND
71     # @DESCRIPTION:
72     # Dependencies for Apache 2.0.x
73 phreak 1.33 APACHE2_0_DEPEND="=www-servers/apache-2.0*"
74 hollow 1.35
75     # @ECLASS-VARIABLE: APACHE2_2_DEPEND
76     # @DESCRIPTION:
77     # Dependencies for Apache 2.2.x
78 phreak 1.33 APACHE2_2_DEPEND="=www-servers/apache-2.2*"
79 vericgar 1.7
80 hollow 1.35 # @ECLASS-VARIABLE: WANT_APACHE_DEPEND
81     # @DESCRIPTION:
82     # Dependency magic based on useflag to use the right DEPEND
83 chtekk 1.30 WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )"
84 stuart 1.20
85 hollow 1.35 # ==============================================================================
86     # INTERNAL FUNCTIONS
87     # ==============================================================================
88    
89     # @FUNCTION: uses_apache2
90     # @DESCRIPTION:
91     # sets up all of the environment variables required for an apache2 module
92     uses_apache2() {
93 vericgar 1.28 debug-print-function $FUNCNAME $*
94 stuart 1.20
95 vericgar 1.28 # WARNING: Do not use these variables with anything that is put
96     # into the dependency cache (DEPEND/RDEPEND/etc)
97 chtekk 1.30 APACHE_VERSION="2"
98 hollow 1.34 USE_APACHE="2"
99 chtekk 1.30 APXS="${APXS2}"
100 stuart 1.20 APACHECTL="${APACHECTL2}"
101     APACHE_BASEDIR="${APACHE2_BASEDIR}"
102     APACHE_CONFDIR="${APACHE2_CONFDIR}"
103     APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}"
104     APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}"
105     APACHE_MODULESDIR="${APACHE2_MODULESDIR}"
106     }
107    
108 hollow 1.35 # @FUNCTION: doesnt_use_apache
109     # @DESCRIPTION:
110     # sets up all of the environment variables required for optional apache usage
111 stuart 1.20 doesnt_use_apache() {
112 vericgar 1.28 debug-print-function $FUNCNAME $*
113 hollow 1.35
114 chtekk 1.30 APACHE_VERSION="0"
115 hollow 1.34 USE_APACHE="0"
116 stuart 1.20 }
117 vericgar 1.9
118 hollow 1.35 # ==============================================================================
119     # PUBLIC FUNCTIONS
120     # ==============================================================================
121    
122     # @FUNCTION: want_apache
123     # @DESCRIPTION:
124     # An ebuild calls this to get the dependency information for optional apache-2.x
125     # support.
126     want_apache() {
127 vericgar 1.28 debug-print-function $FUNCNAME $*
128 stuart 1.1
129 hollow 1.35 IUSE="${IUSE} apache2"
130     DEPEND="${DEPEND} ${WANT_APACHE_DEPEND}"
131     RDEPEND="${RDEPEND} ${WANT_APACHE_DEPEND}"
132    
133     if use apache2 ; then
134     uses_apache2
135     else
136     doesnt_use_apache
137     fi
138 stuart 1.1 }
139    
140 hollow 1.35 # @FUNCTION: need_apache2
141     # @DESCRIPTION:
142     # An ebuild calls this to get the dependency information for apache-2.x. An
143     # ebuild should use this in order for future changes to the build infrastructure
144     # to happen seamlessly. All an ebuild needs to do is include the line
145     # need_apache2 somewhere.
146 urilith 1.6 need_apache2() {
147 vericgar 1.28 debug-print-function $FUNCNAME $*
148 stuart 1.1
149 urilith 1.6 DEPEND="${DEPEND} ${APACHE2_DEPEND}"
150 vericgar 1.10 RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"
151 hollow 1.35 uses_apache2
152 stuart 1.1 }
153    
154 hollow 1.35 # @FUNCTION: need_apache2_0
155     # @DESCRIPTION:
156     # Works like need_apache2 above, but its used by modules that only support
157     # apache 2.0 and do not work with higher versions.
158 vericgar 1.28 need_apache2_0() {
159     debug-print-function $FUNCNAME $*
160    
161     DEPEND="${DEPEND} ${APACHE2_0_DEPEND}"
162     RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}"
163 hollow 1.35 uses_apache2
164 vericgar 1.28 }
165    
166 hollow 1.35 # @FUNCTION: need_apache2_2
167     # @DESCRIPTION:
168     # Works like need_apache2 above, but its used by modules that only support
169     # apache 2.2 and do not work with lower versions.
170 vericgar 1.28 need_apache2_2() {
171     debug-print-function $FUNCNAME $*
172    
173     DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"
174     RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"
175 hollow 1.35 uses_apache2
176 vericgar 1.28 }
177    
178 hollow 1.35 # @FUNCTION: need_apache
179     # @DESCRIPTION:
180     # Legacy alias for need_apache2
181 urilith 1.6 need_apache() {
182 hollow 1.35 need_apache2
183     }
184    
185     # @FUNCTION: apr_config
186     # @DESCRIPTION:
187     # Version magic to get the correct apr-config binary based on the (probably)
188     # installed version of apache. This is needed to get modules to link to the
189     # same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2)
190     apr_config() {
191 vericgar 1.28 debug-print-function $FUNCNAME $*
192 stuart 1.1
193 hollow 1.35 local default="${1:-1}"
194     if [[ "${USE_APACHE}" == "2" ]]; then
195     if has_version ${APACHE2_0_DEPEND}; then
196     echo apr-config
197     else
198     echo apr-1-config
199     fi
200 stuart 1.20 else
201 hollow 1.35 if [[ "${default}" == "0" ]]; then
202     echo apr-config
203     elif [[ "${default}" == "1" ]]; then
204     echo apr-1-config
205     else
206     die "Unknown version specifier: ${default}"
207     fi
208 vericgar 1.28 fi
209 stuart 1.20 }
210    
211 hollow 1.35 # @FUNCTION: apu_config
212     # @DESCRIPTION:
213     # Version magic to get the correct apu-config binary based on the (probably)
214     # installed version of apache. This is needed to get modules to link to the
215     # same apr/apu as apache (i.e. link 0.9 for 2.0, 1.x for 2.2)
216     apu_config() {
217 vericgar 1.28 debug-print-function $FUNCNAME $*
218 stuart 1.20
219 hollow 1.35 local default="${1:-1}"
220     if [[ "${USE_APACHE}" == "2" ]]; then
221     if has_version ${APACHE2_0_DEPEND}; then
222     echo apu-config
223     else
224     echo apu-1-config
225     fi
226 urilith 1.6 else
227 hollow 1.35 if [[ "${default}" == "0" ]]; then
228     echo apu-config
229     elif [[ "${default}" == "1" ]]; then
230     echo apu-1-config
231     else
232     die "Unknown version specifier: ${default}"
233     fi
234 stuart 1.1 fi
235     }

  ViewVC Help
Powered by ViewVC 1.1.20