| 1 | # Copyright 2004 Gentoo Foundation |
1 | # Copyright 2004 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 or later |
| 3 | # Author Michael Tindal <urilith@gentoo.org> |
3 | # Author Michael Tindal <urilith@gentoo.org> |
| 4 | # $Header: /var/cvsroot/gentoo-x86/eclass/apache-module.eclass,v 1.1 2004/11/21 01:51:58 urilith Exp $ |
4 | # $Header: /var/cvsroot/gentoo-x86/eclass/apache-module.eclass,v 1.1.1.1 2005/11/30 09:59:23 chriswhite Exp $ |
| 5 | ECLASS=apache-module |
|
|
| 6 | INHERITED="$INHERITED $ECLASS" |
|
|
| 7 | |
5 | |
| 8 | inherit depend.apache |
6 | inherit depend.apache |
| 9 | |
7 | |
| 10 | # This eclass provides a common set of functions for Apache modules. |
8 | # This eclass provides a common set of functions for Apache modules. |
| 11 | |
9 | |
| … | |
… | |
| 145 | ## apache1_src_compile |
143 | ## apache1_src_compile |
| 146 | ## The default action is to call ${APXS11} with the value of |
144 | ## The default action is to call ${APXS11} with the value of |
| 147 | ## ${APXS1_ARGS}. If a module requires a different build setup |
145 | ## ${APXS1_ARGS}. If a module requires a different build setup |
| 148 | ## than this, use ${APXS1} in your own src_compile routine. |
146 | ## than this, use ${APXS1} in your own src_compile routine. |
| 149 | #### |
147 | #### |
| 150 | apache1_src_compile () { |
148 | apache1_src_compile() { |
| 151 | debug-print-function apache1_src_compile |
149 | debug-print-function apache1_src_compile |
| 152 | |
150 | |
| 153 | CD_DIR=$(apache_cd_dir) |
151 | CD_DIR=$(apache_cd_dir) |
| 154 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
152 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
| 155 | APXS1_ARGS="${APXS1_ARGS:--c ${PN}.c}" |
153 | APXS1_ARGS="${APXS1_ARGS:--c ${PN}.c}" |
| … | |
… | |
| 162 | ## This installs the files into apache's directories. The module is installed |
160 | ## This installs the files into apache's directories. The module is installed |
| 163 | ## from a directory chosen as above (APXS2_S or ${S}/src). In addition, |
161 | ## from a directory chosen as above (APXS2_S or ${S}/src). In addition, |
| 164 | ## this function can also set the executable permission on files listed in EXECFILES. |
162 | ## this function can also set the executable permission on files listed in EXECFILES. |
| 165 | ## The configuration file name is listed in APACHE1_MOD_CONF without the .conf extensions, |
163 | ## The configuration file name is listed in APACHE1_MOD_CONF without the .conf extensions, |
| 166 | ## so if you configuration is 55_mod_foo.conf, APACHE1_MOD_CONF would be 55_mod_foo. |
164 | ## so if you configuration is 55_mod_foo.conf, APACHE1_MOD_CONF would be 55_mod_foo. |
| 167 | ## DOCFILES contains the list of files you want filed as documentation. The name of the |
165 | ## DOCFILES contains the list of files you want filed as documentation. The name of the |
| 168 | ## module can also be specified using the APACHE1_MOD_FILE or defaults to |
166 | ## module can also be specified using the APACHE1_MOD_FILE or defaults to |
| 169 | ## .libs/${PN}.so. |
167 | ## .libs/${PN}.so. |
| 170 | #### |
168 | #### |
| 171 | apache1_src_install() { |
169 | apache1_src_install() { |
| 172 | debug-print-function apache1_src_install |
170 | debug-print-function apache1_src_install |
| 173 | |
171 | |
| 174 | CD_DIR=$(apache_cd_dir) |
172 | CD_DIR=$(apache_cd_dir) |
| 175 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
173 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
| 176 | |
174 | |
| 177 | MOD_FILE=$(apache_mod_file) |
175 | MOD_FILE=$(apache_mod_file) |
| 178 | |
176 | |
| 179 | exeinto ${APACHE1_MODULESDIR} |
177 | exeinto ${APACHE1_MODULESDIR} |
| 180 | doexe ${MOD_FILE} || die "internal ebuild error: \'${MOD_FILE}\' not found" |
178 | doexe ${MOD_FILE} || die "internal ebuild error: '${MOD_FILE}' not found" |
| 181 | [ -n "${APACHE1_EXECFILES}" ] && doexe ${APACHE1_EXECFILES} |
179 | [ -n "${APACHE1_EXECFILES}" ] && doexe ${APACHE1_EXECFILES} |
| 182 | |
180 | |
| 183 | if [ -n "${APACHE1_MOD_CONF}" ] ; then |
181 | if [ -n "${APACHE1_MOD_CONF}" ] ; then |
| 184 | insinto ${APACHE1_MODULES_CONFDIR} |
182 | insinto ${APACHE1_MODULES_CONFDIR} |
| 185 | doins ${FILESDIR}/${APACHE1_MOD_CONF}.conf || die "internal ebuild error: \'${APACHE2_MOD_CONF}.conf\' not found." |
183 | doins ${FILESDIR}/${APACHE1_MOD_CONF}.conf || die "internal ebuild error: '${FILESDIR}/${APACHE1_MOD_CONF}.conf' not found." |
| 186 | |
|
|
| 187 | einfo |
|
|
| 188 | einfo "Configuration file installed as ${APACHE1_MODULES_CONFDIR}/${APACHE1_MOD_CONF}.conf" |
|
|
| 189 | einfo "You may want to edit it before turning the module on in /etc/conf.d/apache" |
|
|
| 190 | einfo |
|
|
| 191 | fi |
184 | fi |
| 192 | |
185 | |
| 193 | cd ${S} |
186 | cd ${S} |
| 194 | |
187 | |
| 195 | if [ -n "${DOCFILES}" ] ; then |
188 | if [ -n "${DOCFILES}" ] ; then |
| 196 | OTHER_DOCS=$(apache_doc_magic) |
189 | OTHER_DOCS=$(apache_doc_magic) |
| 197 | HTML_DOCS=$(apache_doc_magic html) |
190 | HTML_DOCS=$(apache_doc_magic html) |
| … | |
… | |
| 213 | einfo |
206 | einfo |
| 214 | einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache file and" |
207 | einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache file and" |
| 215 | einfo "add '-D ${APACHE1_MOD_DEFINE}' to APACHE_OPTS." |
208 | einfo "add '-D ${APACHE1_MOD_DEFINE}' to APACHE_OPTS." |
| 216 | einfo |
209 | einfo |
| 217 | fi |
210 | fi |
|
|
211 | if [ -n "${APACHE1_MOD_CONF}" ] ; then |
|
|
212 | einfo |
|
|
213 | einfo "Configuration file installed as" |
|
|
214 | einfo " ${APACHE1_MODULES_CONFDIR}/$(basename ${APACHE1_MOD_CONF}).conf" |
|
|
215 | einfo "You may want to edit it before turning the module on in /etc/conf.d/apache" |
|
|
216 | einfo |
|
|
217 | fi |
| 218 | } |
218 | } |
| 219 | |
219 | |
| 220 | ###### |
220 | ###### |
| 221 | ## Apache 2.x ebuild functions |
221 | ## Apache 2.x ebuild functions |
| 222 | ###### |
222 | ###### |
| … | |
… | |
| 226 | ## |
226 | ## |
| 227 | ## Checks to see if APACHE2_MT_UNSAFE is set to anything other than "no". If it is, then |
227 | ## Checks to see if APACHE2_MT_UNSAFE is set to anything other than "no". If it is, then |
| 228 | ## we check what the MPM style used by Apache is, if it isnt prefork, we let the user |
228 | ## we check what the MPM style used by Apache is, if it isnt prefork, we let the user |
| 229 | ## know they need prefork, and then exit the build. |
229 | ## know they need prefork, and then exit the build. |
| 230 | #### |
230 | #### |
| 231 | apache2_pkg_setup () { |
231 | apache2_pkg_setup() { |
| 232 | debug-print-function apache2_pkg_setup |
232 | debug-print-function apache2_pkg_setup |
| 233 | |
233 | |
| 234 | if [ -n "${APACHE2_MT_UNSAFEE}" ]; then |
234 | if [ -n "${APACHE2_SAFE_MPMS}" ]; then |
| 235 | if [ "x${APACHE2_MT_UNSAFE}" != "no" ]; then |
|
|
| 236 | APACHE2_MPM_STYLE=`/usr/sbin/apxs2 -q MPM_NAME` |
|
|
| 237 | if [ "x$APACHE2_MPM_STYLE" != "xprefork" ]; then |
|
|
| 238 | eerror "You currently have Apache configured to use the." |
|
|
| 239 | eerror "$APACHE2_MPM_STYLE MPM style. The module you are" |
|
|
| 240 | eerror "trying to install is not currently thread-safe," |
|
|
| 241 | eerror "and will not work under your current configuraiton." |
|
|
| 242 | echo |
|
|
| 243 | eerror "If you still want to use the module, please reinstall" |
|
|
| 244 | eerror "Apache with mpm-prefork set." |
|
|
| 245 | |
235 | |
| 246 | epause |
236 | INSTALLED_MPM="$(${ROOT}/usr/sbin/apxs2 -q MPM_NAME)" |
| 247 | ebeep |
237 | |
| 248 | die Invalid Apache MPM style. |
238 | if hasq ${INSTALLED_MPM} ${APACHE2_SAFE_MPMS} ; then |
|
|
239 | INSTALLED_MPM_SAFE="yes" |
| 249 | fi |
240 | fi |
| 250 | fi |
241 | |
|
|
242 | if [ -z "${INSTALLED_MPM_SAFE}" ] ; then |
|
|
243 | eerror "The module you are trying to install (${PN})" |
|
|
244 | eerror "will only work with one of the following MPMs:" |
|
|
245 | eerror " ${APACHE2_SAFE_MPMS}" |
|
|
246 | eerror "You do not currently have any of these MPMs installed." |
|
|
247 | eerror "Please re-install apache with the correct mpm-* USE flag set." |
|
|
248 | die "No safe MPM installed." |
| 251 | fi |
249 | fi |
|
|
250 | |
|
|
251 | fi |
|
|
252 | |
| 252 | } |
253 | } |
| 253 | |
254 | |
| 254 | #### |
255 | #### |
| 255 | ## apache2_src_compile |
256 | ## apache2_src_compile |
| 256 | ## |
257 | ## |
| 257 | ## The default action is to call ${APXS2} with the value of |
258 | ## The default action is to call ${APXS2} with the value of |
| 258 | ## ${APXS2_ARGS}. If a module requires a different build setup |
259 | ## ${APXS2_ARGS}. If a module requires a different build setup |
| 259 | ## than this, use ${APXS2} in your own src_compile routine. |
260 | ## than this, use ${APXS2} in your own src_compile routine. |
| 260 | #### |
261 | #### |
| 261 | apache2_src_compile () { |
262 | apache2_src_compile() { |
| 262 | debug-print-function apache2_src_compile |
263 | debug-print-function apache2_src_compile |
| 263 | |
264 | |
| 264 | CD_DIR=$(apache_cd_dir) |
265 | CD_DIR=$(apache_cd_dir) |
| 265 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
266 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
| 266 | APXS2_ARGS="${APXS2_ARGS:--c ${PN}.c}" |
267 | APXS2_ARGS="${APXS2_ARGS:--c ${PN}.c}" |
| … | |
… | |
| 284 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
285 | cd ${CD_DIR} || die "cd ${CD_DIR} failed" |
| 285 | |
286 | |
| 286 | MOD_FILE=$(apache_mod_file) |
287 | MOD_FILE=$(apache_mod_file) |
| 287 | |
288 | |
| 288 | exeinto ${APACHE2_MODULESDIR} |
289 | exeinto ${APACHE2_MODULESDIR} |
| 289 | doexe ${MOD_FILE} || die "internal ebuild error: \'${MOD_FILE}\' not found" |
290 | doexe ${MOD_FILE} || die "internal ebuild error: '${MOD_FILE}' not found" |
| 290 | [ -n "${APACHE2_EXECFILES}" ] && doexe ${APACHE2_EXECFILES} |
291 | [ -n "${APACHE2_EXECFILES}" ] && doexe ${APACHE2_EXECFILES} |
| 291 | |
292 | |
| 292 | if [ -n "${APACHE2_MOD_CONF}" ] ; then |
293 | if [ -n "${APACHE2_MOD_CONF}" ] ; then |
| 293 | insinto ${APACHE2_MODULES_CONFDIR} |
294 | insinto ${APACHE2_MODULES_CONFDIR} |
| 294 | doins ${FILESDIR}/${APACHE2_MOD_CONF}.conf || die "internal ebuild error: \'${APACHE2_MOD_CONF}.conf\' not found." |
295 | doins ${FILESDIR}/${APACHE2_MOD_CONF}.conf || die "internal ebuild error: '${FILESDIR}/${APACHE2_MOD_CONF}.conf' not found." |
| 295 | |
|
|
| 296 | einfo |
|
|
| 297 | einfo "Configuration file installed as ${APACHE2_MODULES_CONFDIR}/${APACHE2_MOD_CONF}.conf" |
|
|
| 298 | einfo "You may want to edit it before turning the module on in /etc/conf.d/apache2" |
|
|
| 299 | einfo |
|
|
| 300 | fi |
296 | fi |
| 301 | |
297 | |
| 302 | if [ -n "${APACHE2_VHOSTFILE}" ]; then |
298 | if [ -n "${APACHE2_VHOSTFILE}" ]; then |
| 303 | insinto ${APACHE2_MODULES_VHOSTDIR} |
299 | insinto ${APACHE2_VHOSTDIR} |
| 304 | doins ${FILESDIR}/${APACHE2_VHOSTFILE}.conf |
300 | doins ${FILESDIR}/${APACHE2_VHOSTFILE}.conf |
| 305 | fi |
301 | fi |
| 306 | |
302 | |
| 307 | cd ${S} |
303 | cd ${S} |
| 308 | |
304 | |
| … | |
… | |
| 322 | einfo |
318 | einfo |
| 323 | einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache2 file and" |
319 | einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache2 file and" |
| 324 | einfo "add '-D ${APACHE2_MOD_DEFINE}' to APACHE2_OPTS." |
320 | einfo "add '-D ${APACHE2_MOD_DEFINE}' to APACHE2_OPTS." |
| 325 | einfo |
321 | einfo |
| 326 | fi |
322 | fi |
|
|
323 | if [ -n "${APACHE2_MOD_CONF}" ] ; then |
|
|
324 | einfo |
|
|
325 | einfo "Configuration file installed as" |
|
|
326 | einfo " ${APACHE2_MODULES_CONFDIR}/$(basename ${APACHE2_MOD_CONF}).conf" |
|
|
327 | einfo "You may want to edit it before turning the module on in /etc/conf.d/apache2" |
|
|
328 | einfo |
|
|
329 | fi |
|
|
330 | |
|
|
331 | if [ -n "${APACHE2_SAFE_MPMS}" ]; then |
|
|
332 | |
|
|
333 | INSTALLED_MPM="$(${ROOT}/usr/sbin/apxs2 -q MPM_NAME)" |
|
|
334 | |
|
|
335 | if ! hasq ${INSTALLED_MPM} ${APACHE2_SAFE_MPMS} ; then |
|
|
336 | INSTALLED_MPM_UNSAFE="${INSTALLED_MPM_UNSAFE} ${mpm}" |
|
|
337 | else |
|
|
338 | INSTALLED_MPM_SAFE="${INSTALLED_MPM_SAFE} ${mpm}" |
|
|
339 | fi |
|
|
340 | |
|
|
341 | if [ -n "${INSTALLED_MPM_UNSAFE}" ] ; then |
|
|
342 | ewarn "You have one or more MPMs installed that will not work with" |
|
|
343 | ewarn "this module (${PN}). Please make sure that you only enable" |
|
|
344 | ewarn "this module if you are using one of the following MPMs:" |
|
|
345 | ewarn " ${INSTALLED_MPM_SAFE}" |
|
|
346 | fi |
|
|
347 | |
|
|
348 | fi |
|
|
349 | |
| 327 | } |
350 | } |
| 328 | |
351 | |
| 329 | ###### |
352 | ###### |
| 330 | ## Apache dual (1.x or 2.x) ebuild functions |
353 | ## Apache dual (1.x or 2.x) ebuild functions |
| 331 | ## |
354 | ## |