| 1 | # Copyright 1999-2007 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.35 2007/11/25 14:27:52 hollow Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.39 2008/02/03 14:12:44 hollow Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: depend.apache.eclass |
5 | # @ECLASS: depend.apache.eclass |
| 6 | # @MAINTAINER: apache-devs@gentoo.org |
6 | # @MAINTAINER: apache-devs@gentoo.org |
| 7 | # @BLURB: Functions to allow ebuilds to depend on apache |
7 | # @BLURB: Functions to allow ebuilds to depend on apache |
| 8 | # @DESCRIPTION: |
8 | # @DESCRIPTION: |
| … | |
… | |
| 23 | |
23 | |
| 24 | # @ECLASS-VARIABLE: APACHE_VERSION |
24 | # @ECLASS-VARIABLE: APACHE_VERSION |
| 25 | # @DESCRIPTION: |
25 | # @DESCRIPTION: |
| 26 | # Stores the version of apache we are going to be ebuilding. This variable is |
26 | # Stores the version of apache we are going to be ebuilding. This variable is |
| 27 | # set by the need_apache functions. |
27 | # set by the need_apache functions. |
| 28 | #APACHE_VERSION="2" |
|
|
| 29 | |
28 | |
| 30 | # @ECLASS-VARIABLE: APXS2 |
29 | # @ECLASS-VARIABLE: APXS |
| 31 | # @DESCRIPTION: |
30 | # @DESCRIPTION: |
| 32 | # Paths to the apxs tool |
31 | # Paths to the apxs tool |
| 33 | APXS2="/usr/sbin/apxs2" |
|
|
| 34 | |
32 | |
| 35 | # @ECLASS-VARIABLE: APACHECTL2 |
33 | # @ECLASS-VARIABLE: APACHECTL |
| 36 | # @DESCRIPTION: |
34 | # @DESCRIPTION: |
| 37 | # Path to the apachectl tool |
35 | # Path to the apachectl tool |
| 38 | APACHECTL2="/usr/sbin/apache2ctl" |
|
|
| 39 | |
36 | |
| 40 | # @ECLASS-VARIABLE: APACHE2_BASEDIR |
37 | # @ECLASS-VARIABLE: APACHE_BASEDIR |
| 41 | # @DESCRIPTION: |
38 | # @DESCRIPTION: |
| 42 | # Path to the server root directory |
39 | # Path to the server root directory |
| 43 | APACHE2_BASEDIR="/usr/$(get_libdir)/apache2" |
|
|
| 44 | |
40 | |
| 45 | # @ECLASS-VARIABLE: APACHE2_CONFDIR |
41 | # @ECLASS-VARIABLE: APACHE_CONFDIR |
| 46 | # @DESCRIPTION: |
42 | # @DESCRIPTION: |
| 47 | # Path to the configuration file directory |
43 | # Path to the configuration file directory |
| 48 | APACHE2_CONFDIR="/etc/apache2" |
|
|
| 49 | |
44 | |
| 50 | # @ECLASS-VARIABLE: APACHE2_MODULES_CONFDIR |
45 | # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR |
| 51 | # @DESCRIPTION: |
46 | # @DESCRIPTION: |
| 52 | # Path where module configuration files are kept |
47 | # Path where module configuration files are kept |
| 53 | APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
|
|
| 54 | |
48 | |
| 55 | # @ECLASS-VARIABLE: APACHE2_VHOSTDIR |
49 | # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR |
| 56 | # @DESCRIPTION: |
50 | # @DESCRIPTION: |
| 57 | # Path where virtual host configuration files are kept |
51 | # Path where virtual host configuration files are kept |
| 58 | APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
|
|
| 59 | |
52 | |
| 60 | # @ECLASS-VARIABLE: APACHE2_MODULESDIR |
53 | # @ECLASS-VARIABLE: APACHE_MODULESDIR |
| 61 | # @DESCRIPTION: |
54 | # @DESCRIPTION: |
| 62 | # Path where we install modules |
55 | # Path where we install modules |
| 63 | APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
56 | |
|
|
57 | # @ECLASS-VARIABLE: APACHE_DEPEND |
|
|
58 | # @DESCRIPTION: |
|
|
59 | # Dependencies for Apache |
|
|
60 | APACHE_DEPEND="www-servers/apache" |
| 64 | |
61 | |
| 65 | # @ECLASS-VARIABLE: APACHE2_DEPEND |
62 | # @ECLASS-VARIABLE: APACHE2_DEPEND |
| 66 | # @DESCRIPTION: |
63 | # @DESCRIPTION: |
| 67 | # Dependencies for Apache 2.x |
64 | # Dependencies for Apache 2.x |
| 68 | APACHE2_DEPEND="=www-servers/apache-2*" |
65 | APACHE2_DEPEND="=www-servers/apache-2*" |
| 69 | |
66 | |
| 70 | # @ECLASS-VARIABLE: APACHE2_0_DEPEND |
|
|
| 71 | # @DESCRIPTION: |
|
|
| 72 | # Dependencies for Apache 2.0.x |
|
|
| 73 | APACHE2_0_DEPEND="=www-servers/apache-2.0*" |
|
|
| 74 | |
|
|
| 75 | # @ECLASS-VARIABLE: APACHE2_2_DEPEND |
67 | # @ECLASS-VARIABLE: APACHE2_2_DEPEND |
| 76 | # @DESCRIPTION: |
68 | # @DESCRIPTION: |
| 77 | # Dependencies for Apache 2.2.x |
69 | # Dependencies for Apache 2.2.x |
| 78 | APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
70 | APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
| 79 | |
71 | |
| 80 | # @ECLASS-VARIABLE: WANT_APACHE_DEPEND |
|
|
| 81 | # @DESCRIPTION: |
|
|
| 82 | # Dependency magic based on useflag to use the right DEPEND |
|
|
| 83 | WANT_APACHE_DEPEND="apache2? ( ${APACHE2_DEPEND} )" |
|
|
| 84 | |
|
|
| 85 | # ============================================================================== |
72 | # ============================================================================== |
| 86 | # INTERNAL FUNCTIONS |
73 | # INTERNAL FUNCTIONS |
| 87 | # ============================================================================== |
74 | # ============================================================================== |
| 88 | |
75 | |
| 89 | # @FUNCTION: uses_apache2 |
76 | _init_apache2() { |
| 90 | # @DESCRIPTION: |
|
|
| 91 | # sets up all of the environment variables required for an apache2 module |
|
|
| 92 | uses_apache2() { |
|
|
| 93 | debug-print-function $FUNCNAME $* |
77 | debug-print-function $FUNCNAME $* |
| 94 | |
78 | |
| 95 | # WARNING: Do not use these variables with anything that is put |
79 | # WARNING: Do not use these variables with anything that is put |
| 96 | # into the dependency cache (DEPEND/RDEPEND/etc) |
80 | # into the dependency cache (DEPEND/RDEPEND/etc) |
| 97 | APACHE_VERSION="2" |
81 | APACHE_VERSION="2" |
| 98 | USE_APACHE="2" |
82 | APXS="/usr/sbin/apxs2" |
| 99 | APXS="${APXS2}" |
83 | APACHE_BIN="/usr/sbin/apache2" |
|
|
84 | APACHE_CTL="/usr/sbin/apache2ctl" |
|
|
85 | # legacy alias |
| 100 | APACHECTL="${APACHECTL2}" |
86 | APACHECTL="${APACHE_CTL}" |
| 101 | APACHE_BASEDIR="${APACHE2_BASEDIR}" |
87 | APACHE_BASEDIR="/usr/$(get_libdir)/apache2" |
| 102 | APACHE_CONFDIR="${APACHE2_CONFDIR}" |
88 | APACHE_CONFDIR="/etc/apache2" |
| 103 | APACHE_MODULES_CONFDIR="${APACHE2_MODULES_CONFDIR}" |
89 | APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d" |
| 104 | APACHE_VHOSTSDIR="${APACHE2_VHOSTSDIR}" |
90 | APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d" |
| 105 | APACHE_MODULESDIR="${APACHE2_MODULESDIR}" |
91 | APACHE_MODULESDIR="${APACHE_BASEDIR}/modules" |
| 106 | } |
92 | } |
| 107 | |
93 | |
| 108 | # @FUNCTION: doesnt_use_apache |
94 | _init_no_apache() { |
| 109 | # @DESCRIPTION: |
|
|
| 110 | # sets up all of the environment variables required for optional apache usage |
|
|
| 111 | doesnt_use_apache() { |
|
|
| 112 | debug-print-function $FUNCNAME $* |
95 | debug-print-function $FUNCNAME $* |
| 113 | |
|
|
| 114 | APACHE_VERSION="0" |
96 | APACHE_VERSION="0" |
| 115 | USE_APACHE="0" |
|
|
| 116 | } |
97 | } |
| 117 | |
98 | |
| 118 | # ============================================================================== |
99 | # ============================================================================== |
| 119 | # PUBLIC FUNCTIONS |
100 | # PUBLIC FUNCTIONS |
| 120 | # ============================================================================== |
101 | # ============================================================================== |
| 121 | |
102 | |
| 122 | # @FUNCTION: want_apache |
103 | # @FUNCTION: want_apache |
| 123 | # @DESCRIPTION: |
104 | # @DESCRIPTION: |
| 124 | # An ebuild calls this to get the dependency information for optional apache-2.x |
105 | # An ebuild calls this to get the dependency information for optional apache-2.x |
| 125 | # support. |
106 | # support. |
|
|
107 | want_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: |
|
|
124 | # An ebuild calls this to get the dependency information for optional |
|
|
125 | # apache-2.2.x support. |
|
|
126 | want_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. |
| 126 | want_apache() { |
145 | want_apache() { |
| 127 | debug-print-function $FUNCNAME $* |
146 | debug-print-function $FUNCNAME $* |
| 128 | |
147 | want_apache2 "$@" |
| 129 | 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 | } |
148 | } |
| 139 | |
149 | |
| 140 | # @FUNCTION: need_apache2 |
150 | # @FUNCTION: need_apache2 |
| 141 | # @DESCRIPTION: |
151 | # @DESCRIPTION: |
| 142 | # An ebuild calls this to get the dependency information for apache-2.x. An |
152 | # Works like need_apache, but its used by modules that only support |
| 143 | # ebuild should use this in order for future changes to the build infrastructure |
153 | # apache 2.x and do not work with other versions. |
| 144 | # to happen seamlessly. All an ebuild needs to do is include the line |
|
|
| 145 | # need_apache2 somewhere. |
|
|
| 146 | need_apache2() { |
154 | need_apache2() { |
| 147 | debug-print-function $FUNCNAME $* |
155 | debug-print-function $FUNCNAME $* |
| 148 | |
156 | |
| 149 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
157 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
| 150 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
158 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
| 151 | uses_apache2 |
159 | _init_apache2 |
| 152 | } |
|
|
| 153 | |
|
|
| 154 | # @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 | need_apache2_0() { |
|
|
| 159 | debug-print-function $FUNCNAME $* |
|
|
| 160 | |
|
|
| 161 | DEPEND="${DEPEND} ${APACHE2_0_DEPEND}" |
|
|
| 162 | RDEPEND="${RDEPEND} ${APACHE2_0_DEPEND}" |
|
|
| 163 | uses_apache2 |
|
|
| 164 | } |
160 | } |
| 165 | |
161 | |
| 166 | # @FUNCTION: need_apache2_2 |
162 | # @FUNCTION: need_apache2_2 |
| 167 | # @DESCRIPTION: |
163 | # @DESCRIPTION: |
| 168 | # Works like need_apache2 above, but its used by modules that only support |
164 | # Works like need_apache, but its used by modules that only support |
| 169 | # apache 2.2 and do not work with lower versions. |
165 | # apache 2.2.x and do not work with other versions. |
| 170 | need_apache2_2() { |
166 | need_apache2_2() { |
| 171 | debug-print-function $FUNCNAME $* |
167 | debug-print-function $FUNCNAME $* |
| 172 | |
168 | |
| 173 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
169 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
| 174 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
170 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
| 175 | uses_apache2 |
171 | _init_apache2 |
| 176 | } |
172 | } |
| 177 | |
173 | |
| 178 | # @FUNCTION: need_apache |
174 | # @FUNCTION: need_apache |
| 179 | # @DESCRIPTION: |
175 | # @DESCRIPTION: |
| 180 | # Legacy alias for need_apache2 |
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. |
| 181 | need_apache() { |
180 | need_apache() { |
|
|
181 | debug-print-function $FUNCNAME $* |
| 182 | need_apache2 |
182 | need_apache2 |
| 183 | } |
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 | debug-print-function $FUNCNAME $* |
|
|
| 192 | |
|
|
| 193 | 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 | else |
|
|
| 201 | 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 | fi |
|
|
| 209 | } |
|
|
| 210 | |
|
|
| 211 | # @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 | debug-print-function $FUNCNAME $* |
|
|
| 218 | |
|
|
| 219 | 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 | else |
|
|
| 227 | 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 | fi |
|
|
| 235 | } |
|
|