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

Diff of /eclass/apache-module.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 Revision 1.12
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.12 2005/07/11 15:08:06 swegener Exp $
5ECLASS=apache-module
6INHERITED="$INHERITED $ECLASS"
7 5
8inherit depend.apache 6inherit 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####
150apache1_src_compile () { 148apache1_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####
171apache1_src_install() { 169apache1_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####
231apache2_pkg_setup () { 231apache2_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####
261apache2_src_compile () { 262apache2_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_MODULES_VHOSTDIR}
304 doins ${FILESDIR}/${APACHE2_VHOSTFILE}.conf 300 doins ${FILESDIR}/${APACHE2_VHOSTFILE}.conf
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##

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.20